【问题标题】:hiding a column in a dynamic infragistics grid and updating header隐藏动态基础网格中的列并更新标题
【发布时间】:2013-05-07 16:24:38
【问题描述】:

我有一个基础架构网格,可以在更改下拉列表时获取数据 1-我想在每次网格加载数据时隐藏最后一列 2-我也想根据数据更新标题

问题 我正在尝试

     protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        EntityName.Text = DropDownList1.SelectedItem.Text;
        string entity = "t_" + DropDownList1.SelectedItem.Text;
        String strConnString = ConfigurationManager.ConnectionStrings["LiveLeaseConnectionString"].ConnectionString;
        SqlConnection con = new SqlConnection(strConnString);
        SqlCommand cmd = new SqlCommand("p_DataList_ByRegardingObject", con);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@RegardingObjectName", entity);
        SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        sqlDataAdapter.Fill(dt);
        this.EntityGrid.DataSource = dt;
        this.EntityGrid.Columns[6].Hidden = true;

它抛出空引用错误,并且每次加载数据时似乎都没有更新列名。数据正在刷新,但不是列名。 这是我的aspx

    <asp:DropDownList ID="DropDownList1" AutoPostBack="true" runat="server" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
   <asp:ListItem>Select Entity</asp:ListItem>
</asp:DropDownList>
<asp:Label runat="server" ID="EntityName"></asp:Label>
<ig:WebScriptManager ID="WebScriptManager1" runat="server"></ig:WebScriptManager>
<ig:WebDataGrid ID="EntityGrid" runat="server"  Width="100%" Height="50%" StyleSetName="Claymation" >

    <Behaviors>
        <ig:Sorting>
        </ig:Sorting>

    </Behaviors>
    <ClientEvents Click="NavigateOnClick" />
</ig:WebDataGrid>   

【问题讨论】:

  • 你能告诉我在哪一行引发了异常吗?
  • 史蒂夫在 this.entitygrid.columns[6].hidden=true;它抛出异常
  • 更新标题是通过清除列来完成的。但是对于隐藏部分,我知道该列是所有实体的 url,但它可能不会一直在同一列中,是否可以使用此文本隐藏它?

标签: c# javascript asp.net infragistics


【解决方案1】:

如果您的 AutogenerateColumnsTrue - 网格列集合将为空。诀窍是通过 Grid Rows 到达列。

网格绑定后试试这个:

this.EntityGrid.Rows[0].Items[6].Column.Hidden = true;

只要确保网格至少有一行。

【讨论】:

  • Yuriy Galanter 它在大多数情况下都能正常工作,但有些地方我得到的对象未设置为对象实例错误。这是正确的地方吗 SqlDataAdapter da = new SqlDataAdapter(cmd);数据表 dt = 新数据表(); da.填充(dt); this.EntityGrid.DataSource = dt; this.EntityGrid.DataBind(); this.EntityGrid.Rows[0].Items[6].Column.Hidden = true;
  • 您能否验证 Rows 集合是否没有行或 Items 集合是否没有项目?调用此代码时,您必须确保网格有数据。此外,您可能想尝试将此行移动到网格的 PreRenderevent 处理程序中。
  • 有没有办法使用文本隐藏?就像列名是 url
  • 使用this.EntityGrid.Rows[0].Items[] 集合,您可以遍历它,检查.Column.Header.Text(或其他列属性)并采取相应措施
猜你喜欢
  • 1970-01-01
  • 2011-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-02
  • 2013-06-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多