EXT GridPanel 获取当前页面显示的数据(变通法)
这两天新到个公司。。 需要用到EXT 非要用EXT啊 0_0 ..
用到其中一个控件 GridPanel 我需要取其中的页面上的数据 然后保存到数据库中.. 翻了两天资料
发现大神们用的 都是JS 啊 JS 本人可不会JS 一直做winform来着 完全不会
无奈只好翻官方的示例 结合 GridPanel其中Selection Models--> Row Selection
和update-->Autodate 两个示例
取其中可用部分
<ExtraParams>
<ext:Parameter Name="Valuess" Value="Ext.encode(#{grp_rulelot}.getRowsValues({selectedOnly:true}))"
Mode="Raw" />
</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>
<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();
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<string, string>[] companies = JSON.Deserialize<Dictionary<string, string>[]>(json);
StringBuilder sb = new StringBuilder();
sb.Append("<table cellspacing='15'>");
bool addHeader = true;
foreach (Dictionary<string, string> row in companies)
{
if (addHeader)
{
sb.Append("<tr>");
foreach (KeyValuePair<string, string> 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<string, string> 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
#region 序列化选中的数据
Dictionary<string, string>[] companies = JSON.Deserialize<Dictionary<string, string>[]>(json);
StringBuilder sb = new StringBuilder();
sb.Append("<table cellspacing='15'>");
bool addHeader = true;
foreach (Dictionary<string, string> row in companies)
{
if (addHeader)
{
sb.Append("<tr>");
foreach (KeyValuePair<string, string> 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<string, string> 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