gridview 动态列排序后 控件丢失
gridview 里有几列固定的(里面有控件),有一些动态加载进去的普通列,普通列进行排序后,固定列里面的控件丢失。前台代码如下:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" AllowSorting="True"
OnSorting="GridView1_Sorting" OnRowDataBound="GridView1_RowDataBound" Width="100%"
OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField HeaderText="T">
<HeaderTemplate>
<input id="cSelected" type="checkbox" onclick="checkAll(this);" runat="server" />
</HeaderTemplate>
<ItemTemplate>
<input id="chkBoxBase" type="checkbox" runat="server" />
<asp:Label ID="PK_ID" Text='<%# DataBinder.Eval(Container.DataItem,"NET_ID") %>'
Visible="False" runat="server">
</asp:Label>
</ItemTemplate>
<ItemStyle Width="5px" />
</asp:TemplateField>
<asp:TemplateField HeaderText="操作" ItemStyle-Width="90px" HeaderStyle-Width="90px"
HeaderStyle-Wrap="false" ItemStyle-Wrap="false">
<ItemTemplate>
<img title="查看" src="../../../../images/btn_list.gif" onclick="OpenManager(<%# Eval("NET_ID") %>,'list',800,450);" />
<img title="修改" src="../../../../images/btn_edi.gif" onclick="OpenEditor(<%# Eval("NET_ID") %>,800,450);" />
<asp:ImageButton ID="btn_Gdel" CommandName="btn_Gdel" runat="server" CommandArgument='<%# Eval("NET_ID") %>'
OnClientClick="return window.confirm( '您确定要删除吗? ');" ImageUrl="../../../../images/btn_del2.gif"
ToolTip="删除" />
</ItemTemplate>
后台代码如下:
int i=1;
// 将所有的列名都添加到GridView中去
foreach (string str in temp)
{
if (str != "")
{
BoundField bf = new BoundField();
// 数据域为当前列的内容;
bf.DataField = str;
string sql = "SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME='" + tablename + "' AND COLUMN_NAME='" + str + "'";
DataTable dttext = EFLY.Common.OracleHelper.ExecuteDataset(CommonBase.GetOracleConnection, CommandType.Text, sql).Tables[0];
// 获取列名
string headname = dttext.Rows[0]["COMMENTS"].ToString();
string columnname =dttext.Rows[0]["COLUMN_NAME"].ToString();
//绑定到GridView 列标头
bf.HeaderText = headname;
bf.SortExpression=columnname;
this.GridView1.Columns.Insert(i, bf);
i++;
}
DataTable data = EFLY.BLL.T_ZX_XY_BTS_COVER.GetDataTableWhere("*", "1 = 1");
this.GridView1.DataSource = data;
第一次进去 没问题
排序后 控件就丢失了。 --------------------编程问答-------------------- 肿么木有人知道 啊。
--------------------编程问答-------------------- 代码没看懂 你要表达的意思
补充:.NET技术 , 组件/控件开发