2010-11-16 24 views
1

我有一個查詢表達式,我綁定到Page_Load中的GridView。我想在SelectedIndexChaned事件捕捉到的數據是這樣定義一個BoundField:數據可以保存在一個動態綁定的GridView的不可見域中嗎?

<asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" 
          SortExpression="ID" Visible="False" /> 

如果我設置可見=「真」,我有沒有麻煩這個數據。有沒有辦法隱藏ID字段,仍然可以獲取數據?

回答

4

取決於您如何獲取數據。如果這是數據源中每行唯一的ID字段,請在GridView聲明中使用DataKeyNames = "ID"。然後,在後面的代碼,只要你需要的ID,你可以使用下面的一行:

string ID = GridView1.Rows[GridRowIndex].DataKeys[0].Value.ToString(); 

您也可以將您的綁定列到一個TemplateField之一,並放置一個HiddenField在它存儲的ID。像這樣:

<asp:TemplateField> 
    <ItemTemplate> 
     <asp:Label ID="someOtherDataLabel" runat="server" /> 
     <asp:HiddenField ID="IDHiddenField" runat=server /> 
    </ItemTemplate> 
</asp:TemplateField> 

然後,你可以使用FindControl()RowDataBound事件在GridView中存儲的ID值。

+0

你的第二種方式就像一個魅力。 Intellisense不同意第一個。太感謝了。 – Blanthor 2010-11-16 20:56:36

相關問題