OnSelectedIndexChanged未在GridView中激发

本文关键字:GridView 未在 OnSelectedIndexChanged | 更新日期: 2023-09-27 18:00:07

网格视图代码:

<asp:GridView ID="gvVessel" runat="server" AutoGenerateColumns="false" GridLines="None"
     EmptyDataText="No Vessels found." OnRowCommand="gvVessel_RowCommand"      
     OnSelectedIndexChanged="gvVessel_SelectedIndexChanged" DataKeyNames="VesselID" >
<asp:/GridView>

代码背后:

protected void gvVessel_SelectedIndexChanged(object sender, EventArgs e)
{
    int index = Convert.ToInt16(gvVessel.SelectedDataKey.Value);
    Cache["index"] = index;
    Response.Redirect("VesselDraft.aspx");
}

为什么活动没有启动?

OnSelectedIndexChanged未在GridView中激发

如其中一个SO问题所建议
GridView OnSelectedIndexChanged事件未启动
在更改的索引中选择的网格视图第一次单击时未启动
gridview SelectedIndexChanged事件未激发。我使用的是asp.net 4.0。顺便说一下,rowdatabound事件正在完美地触发

如果您只是单击GridView中的行,则不会触发事件。您必须在行中有某种按钮才能单击,它将触发RowCommand事件和SelectedIndexChanged事件(当然,如果您单击的行尚未选定)。它并不完全像Windows窗体DataGridView=)

激发事件的最简单方法是将此属性添加到GridView标记中:

AutoGenerateSelectButton="True"

这将创建一个"选择"LinkButton,当您单击它时,它将在代码后面激发Gridview1_SelectedIndexChanged2事件

编辑:只是澄清一下,这是您需要添加属性的地方:

<asp:GridView ID="GridView1" runat="server" GridLines="None" 
  Width="930px" CellPadding="4" ForeColor="#333333"  
  onselectedindexchanged="GridView1_SelectedIndexChanged2"
  AutoGenerateSelectButton="True" >

请设置属性

AutoPostback ="true" for GridView.

谢谢,Hitesh