如何选择未设置AutoGenerateSelectButton
为 true 的行并检查 selectedIndex in GridView_SelectedIndexChanged
?
如何识别用户选择表上的特定字段(例如选择的 row2、col3)
如何选择未设置AutoGenerateSelectButton
为 true 的行并检查 selectedIndex in GridView_SelectedIndexChanged
?
如何识别用户选择表上的特定字段(例如选择的 row2、col3)
添加带有按钮的列(使用模板字段)并将 CommandName 设置为“Select”。那应该行得通。
这是一个没有选择按钮的平均网格视图。RowDataBound 方法使您的网格突出显示。您可以检查是否可能使用 SelectedIndexChanged 方法中的 if 条件选择了某个列,因为这将告诉您选择了哪一行,然后您可以根据列的制作顺序从特定列中获取一个值,如下所示。这不会准确显示他们点击 x 和 y 的位置,但我认为应该朝着正确的方向前进。但是,这将根据突出显示的行以及通过回帖单击的行来获取列数据。
<asp:GridView ID="PropertyGridView" runat="server" AutoGenerateColumns="False" OnSelectedIndexChanged="PropertyGridView_SelectedIndexChanged" OnRowDataBound="PropertyGridView_RowDataBound">
<RowStyle HorizontalAlign="Left" />
<EmptyDataTemplate>
<div>
<asp:Label runat="server" ID="EtLbl" Text="No properties were found."</asp:Label>
</div>
</EmptyDataTemplate>
<Columns>
<asp:BoundField DataField="Name" HeaderText="User Name" Width="20%" /> </asp:BoundField>
<asp:BoundField DataField="Age" HeaderText="User Age" Width="20%" /> </asp:BoundField>
<asp:BoundField DataField="Height" HeaderText="User Height" Width="20%" /> </asp:BoundField>
</Columns>
</asp:GridView>
public void PropertyGridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.DataItemIndex == -1)
return;
e.Row.Attributes.Add("onMouseOver", "this.style.cursor='hand';");
e.Row.Attributes.Add("onclick", this.GetPostBackClientEvent(PropertyGridView,"Select$" + e.Row.RowIndex.ToString()));
}
public void PropertyGridView_SelectedIndexChanged(object sender, EventArgs e)
{
string Name = PropertyGridView.SelectedRow.Cells[0].Text;
string Age= PropertyGridView.SelectedRow.Cells[1].Text;
string Height PropertyGridView.SelectedRow.Cells[2].Text;
if( Height != null)
{
// The user selected a row and this Column ( Height has data )
}
}