EXT GridPanel 获取当前页面显示的数据(变通法)

 这两天新到个公司。。 需要用到EXT  非要用EXT啊 0_0 ..

 用到其中一个控件 GridPanel  我需要取其中的页面上的数据 然后保存到数据库中.. 翻了两天资料

发现大神们用的 都是JS 啊 JS 本人可不会JS  一直做winform来着  完全不会

无奈只好翻官方的示例  结合 GridPanel其中Selection Models--> Row Selection

和update-->Autodate 两个示例

附地址:http://examples.ext.net/

取其中可用部分

 

 

                        <ExtraParams>
                            
<ext:Parameter Name="Valuess" Value="Ext.encode(#{grp_rulelot}.getRowsValues({selectedOnly:true}))"
                                Mode
="Raw" />
                        
</ExtraParams>

获取选中行的数据

 

                                     <ExtraParams>
                                            
<ext:Parameter Name="Values" Value="Ext.encode(#{grp_rulelot}.getStore().getCount())"
                                                Mode
="Raw" />
                                        
</ExtraParams>

获取总行数

这两段代码 组合成一下后台代码

 

        string json = e.ExtraParams["Values"];

        RowSelectionModel rs 
= this.grp_rulelot.SelectionModel.Primary as RowSelectionModel;
        
for (int i = 0; i < Convert.ToInt32(json); i++)
        {
            rs.SelectedRows.Add(
new SelectedRow(i));
        }
        rs.UpdateSelection();
        
//锁定选中状态
        RowSelectionModel1.Lock();

        string json = e.ExtraParams["Valuess"];
        
#region 序列化选中的数据
        Dictionary
<stringstring>[] companies = JSON.Deserialize<Dictionary<stringstring>[]>(json);

        StringBuilder sb 
= new StringBuilder();
        sb.Append(
"<table  cellspacing='15'>");
        
bool addHeader = true;

        
foreach (Dictionary<stringstring> row in companies)
        {
            
if (addHeader)
            {
                sb.Append(
"<tr>");
                
foreach (KeyValuePair<stringstring> keyValuePair in row)
                {
                    sb.Append(
"<td style='white-space:nowrap;font-weight:bold;'>");

                    sb.Append(keyValuePair.Key);

                    sb.Append(
"</td>");
                }
                sb.Append(
"</tr>");

                addHeader 
= false;
            }

            sb.Append(
"<tr>");
            
foreach (KeyValuePair<stringstring> keyValuePair in row)
            {
                sb.Append(
"<td style='white-space:nowrap;'>");

                sb.Append(keyValuePair.Value);

                sb.Append(
"</td>");
            }
            sb.Append(
"</tr>");
        }
        sb.Append(
"</table>");
        lab.Html 
= sb.ToString();
        
#endregion

  来完成 数据获取。

 完成后效果图如下

 

 

 

 

 

   我的方法比较笨,, 仅供参考。希望对大家有用

 如果有大神 能指点1,2就更好了

 

 QQ:363116554

posted @ 2011-03-09 15:52  迪卡.凯恩  阅读(3780)  评论(1编辑  收藏  举报