2013-05-07 101 views
1

我有一個infragistics網格,當下拉改變時獲取數據 1-我想隱藏每次網格加載數據時的最後一列 2-我也要根據數據隱藏動態infragistics網格中的列並更新標題

問題 我想

 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; 

其拋出空引用錯誤,它似乎在每次加載data.data是越來越刷新時間更新列名而不是列標題更新名。 這裏是我的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> 
+0

你能告訴我哪一行會拋出異常嗎? – Steve 2013-05-07 18:01:24

+0

steve at this.entitygrid.columns [6] .hidden = true;它會拋出異常 – user2167089 2013-05-07 19:04:09

+0

更新標題是通過清除列完成的。但對於隱藏部分,我知道列是所有實體的url,但它可能不在同一列,所有的時間都在那裏使用此文本隱藏它? – user2167089 2013-05-08 17:57:56

回答

2

如果您AutogenerateColumnsTrue - 格列集合是空的。訣竅是通過Grid Rows訪問列。

網格綁定後試試這個:

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

只要確保電網至少有一個排。

+0

尤里·加蘭特它大多數時間工作正常,但有些地方我得到的對象沒有設置爲對象實例錯誤。是這樣做的正確的地方SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable dt = new DataTable(); da.Fill(dt); this.EntityGrid.DataSource = dt; this.EntityGrid.DataBind(); this.EntityGrid.Rows [0] .Items [6] .Column.Hidden = true; – user2167089 2013-05-08 17:36:18

+0

您可以驗證行集合是否沒有行或者項目集合是否沒有項目?調用此代碼時,必須確保網格具有數據。你也可以嘗試將這一行移動到網格的'PreRender'事件處理程序中。 – 2013-05-08 17:43:36

+0

它有一種方法來隱藏使用文本?像列名是url – user2167089 2013-05-08 17:58:30