gridview SelectedDataKey - 我使用这个吗?

时间:2011-02-12 14:01:21

标签: c# asp.net gridview

当用户选择一行时,我尝试从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

1 个答案:

答案 0 :(得分:1)

如果要查找选定的行“SSN”值,则需要使用Gridview的DataKeys属性,如GridView1.DataKeys [“your_SelectedDataKey_index”] [“your_selected_row_index”]。这是一个只读属性。