gvSquid2에서 선택 버튼을 클릭하면 x가 유효하고 올바른 값을 얻습니다. gvSquid에서 선택 버튼을 클릭하면 gv가 있기 때문에 ArgumentOutOfRange 예외가 발생합니다. SelectedIndex
= 0. 또한, gv. SelectedDataKey
이 null입니다. DataKey
정보를 얻으려면 어떻게해야합니까? 열을 사용자가 숨겨야하므로 허용되지 않습니다. DataBind()
동안 값이 삭제되므로 열을 숨기는 것은 쓸모가 없습니다. 나는 마이크로 소프트의 웹 사이트에서이 예를 찢었다. 내가 뭘 놓치고 있니?GridView를 사용할 때 SelectedIndex는 사용자 정의 선택 버튼을 사용할 때 항상 0입니다.
<asp:gridview ID="gvSquid2" DataSourceID="dsComments" AutoGenerateColumns="false" AutoGenerateSelectButton="true" DataKeyNames="ID" OnSelectedIndexChanged="gvSquid_SelectedIndexChanged" runat="server" EnableViewState="false">
<Columns>
<asp:BoundField DataField="Date" ReadOnly="true" HeaderText="Date" SortExpression="Date" />
<asp:BoundField DataField="Comment" ReadOnly="true" HeaderText="Comment" SortExpression="Comment" />
<asp:BoundField DataField="Username" ReadOnly="true" HeaderText="User" SortExpression="Username" />
</Columns>
</asp:gridview>
<asp:gridview ID="gvSquid" DataSourceID="dsComments" AutoGenerateColumns="false" DataKeyNames="ID" OnSelectedIndexChanged="gvSquid_SelectedIndexChanged" runat="server" EnableViewState="false">
<Columns>
<asp:CommandField ButtonType="Image" HeaderText="Select" ShowSelectButton="true" SelectImageUrl="~/includes/RedX.jpg" />
<asp:BoundField DataField="Date" ReadOnly="true" HeaderText="Date" SortExpression="Date" />
<asp:BoundField DataField="Comment" ReadOnly="true" HeaderText="Comment" SortExpression="Comment" />
<asp:BoundField DataField="Username" ReadOnly="true" HeaderText="User" SortExpression="Username" />
</Columns>
</asp:gridview>
protected void gvSquid_SelectedIndexChanged(object sender, EventArgs e) {
string x;
x = gvSquid.DataKeys[gvSquid.SelectedIndex].Value.ToString();
}
'gvSquid.SelectedRow.RowIndex = 0', 그래서 난 아직도 ArgumentOutOfRange 예외를 얻고있다. 그 문제에 대해,'gvSquid.DataKeys.Count = 0', 그래서 나는 모든 DataKey 관련 잃어버린 것 같습니다. –