C# 火灾选择索引已更改为AutoGenerateSelect“;假;

C# 火灾选择索引已更改为AutoGenerateSelect“;假;,c#,asp.net,gridview,C#,Asp.net,Gridview,我有一个datagrid视图,我想在gridview的选定行上捕获一个datakeyname值。但是在这个场景中,我的一个列(事件标题)将是一个超链接,当单击此链接时,它将触发selectedindexchanged并捕获DataKeyName,并将其传递以填充表单。这是我的密码。当前我的超链接字段不可单击。我需要改变我的方法吗 <asp:GridView ID="gvEventDetails" CssClass="gvEvent" runat="server" DataKeyNames=

我有一个
datagrid
视图,我想在
gridview
的选定行上捕获一个
datakeyname
值。但是在这个场景中,我的一个列(事件标题)将是一个超链接,当单击此链接时,它将触发
selectedindexchanged
并捕获
DataKeyName
,并将其传递以填充表单。这是我的密码。当前我的超链接字段不可单击。我需要改变我的方法吗

<asp:GridView ID="gvEventDetails" CssClass="gvEvent" runat="server" DataKeyNames="Event_ID"
                AutoGenerateColumns="false" OnSelectedIndexChanged="gvEventDetails_SelectedIndexChanged" >     
     <Columns>        
         <asp:TemplateField HeaderText="Event Title">
            <ItemTemplate>                                                                                       
               <asp:HyperLink ID="HyperLink1" Text='<%# Eval("Event_Title") %>' runat="server"></asp:HyperLink>
              </ItemTemplate>
          </asp:TemplateField>
          <asp:TemplateField HeaderText="Client Name">
            <ItemTemplate>
               <asp:Label ID="ClientName" runat="server" Text='<%# Eval("Name") %>'>
               </asp:Label>
             </ItemTemplate>
          </asp:TemplateField>

请尝试使用命令名为的linkbutton,而不是超链接:

<asp:TemplateField>
   <ItemTemplate>
       <asp:LinkButton runat="server" CommandName="Select" CommandArgument='<%# Eval("Event_ID") %>' Text='<%# Eval("Event_Title") %>'
   ...


这就是我最后做的

 protected void gvEventDetails_RowCommand(object sender, GridViewCommandEventArgs e)
    {           
          string PK = (e.CommandArgument).ToString();                    
    }
             <asp:TemplateField HeaderText="Event Title">
                <ItemTemplate>                                                                                       
                    <asp:LinkButton ID="HyperLink1" runat="server" Text='<%# Eval("Event_Title") %>'
                    CommandArgument='<%# Eval("Event_ID") %>'
                        ></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>  
protectedvoid gvEventDetails\u行命令(对象发送方,GridViewCommandEventArgs e)
{           
字符串PK=(e.CommandArgument).ToString();
}
 protected void gvEventDetails_RowCommand(object sender, GridViewCommandEventArgs e)
    {           
          string PK = (e.CommandArgument).ToString();                    
    }
             <asp:TemplateField HeaderText="Event Title">
                <ItemTemplate>                                                                                       
                    <asp:LinkButton ID="HyperLink1" runat="server" Text='<%# Eval("Event_Title") %>'
                    CommandArgument='<%# Eval("Event_ID") %>'
                        ></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>