当用户选择一行时,我尝试从gridview获取所选元素的社会安全号码(SSN)。
<asp:GridView ID="PeopleGrid" runat="server" AutoGenerateColumns="False" CellPadding="4"
ForeColor="#333333" GridLines="None"
onselectedindexchanged="GetDataForPerson" DataKeyNames="SSN">
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:CommandField ShowSelectButton="True" ButtonType="Button" SelectText="Select" />
<asp:BoundField HeaderText="NameHeader" DataField="NameProp" />
<asp:BoundField HeaderText="AddressHeader" DataField="PersAddressProp" />
</Columns>
protected void GetDataForPerson(object sender, EventArgs e)
{
var x= PeopleGrid.SelectedDataKey.Value.ToString()
}
x应该是所选人员的SSN,但PeopleGrid.SelectedDataKey为null。这有什么不对?
这是我绑定数据的方式:
PeopleGrid.DataSource = PeopleCollection;
PeopleGrid.DataBind();
PeopleCollection是People的集合。 类人员包含SSN,NameProp,PersAddressProp
答案 0 :(得分:1)
如果要查找选定的行“SSN”值,则需要使用Gridview的DataKeys属性,如GridView1.DataKeys [“your_SelectedDataKey_index”] [“your_selected_row_index”]。这是一个只读属性。