linkbutton或按钮onClick不在gridview ItemTemplate中触发

时间:2014-04-23 19:04:38

标签: c# asp.net gridview

嗨我在我的asp.net网页上有一个gridview,在用户选择3个下拉列表后有界 下拉列表的自动回发设置为true,现在我的问题是当我在gridview ItemTemplate中放置一个按钮,图像按钮或链接按钮时onclick事件剂量火! 这是我的代码

    <asp:GridView ID="GridView1" runat="server"   Width="90%" Height="100%" OnRowCommand="GridView1_RowCommand"  OnPageIndexChanging="GridView1_PageIndexChanging" style="margin:20px; vertical-align:top;"  PageSize="10" AllowPaging="True" 
        AllowSorting="True"  
        AutoGenerateColumns="False" DataKeyNames="WFStudentID" ShowHeader="true" BorderWidth="1px">

        <Columns>
          <asp:TemplateField  ShowHeader="true">
            <ItemTemplate >
              <tr>
                <td>
                  <asp:Label ID="Label1" ForeColor="Silver" Font-Size="Medium" runat="server" Text='<%# Bind("Name") %>'></asp:Label>
                </td>
                <td>
                  <asp:Label ID="Label2" runat="server" ForeColor="Silver" Font-Size="Medium"  Text='<%# Bind("Family") %>'></asp:Label>
                </td>
                <td>
                  <asp:HyperLink ID="HyperLink1" ForeColor="Silver" Font-Size="Medium" Target="_blank" NavigateUrl='<%# Bind("WFStudentFilePath") %>' runat="server">دانلود</asp:HyperLink>
                </td>
                <td>
                  <asp:Label ID="Label7" runat="server" ForeColor="Silver" Font-Size="Medium"  Text='<%# Bind("WFStudentDate") %>'></asp:Label>
                </td>
                <td>
                  <asp:Button ID="Deny" Text="deny"  OnClick="Deny_Click1"       runat="server" />
                </td>
                <td>
                  <asp:ImageButton ID="accept" OnClick="accept_Click"  runat="server" />
                </td>
                <td>
                  <asp:TextBox ID="des" TextMode="MultiLine" Height="100px" Width="200px" runat="server"></asp:TextBox>
                </td>
              </tr>
              <br />
            </ItemTemplate>
          </asp:TemplateField>
        </Columns>
    </asp:GridView>  



protected void Deny_Click1(object sender, EventArgs e)
{
  Response.Redirect("home.aspx");
}

3 个答案:

答案 0 :(得分:2)

它可能正在触发,但它会抛出异常(你的catch块会忽略)。例外是因为这一行:

  

LinkBut​​ton Link =(LinkBut​​ton)sender;

发件人是一个Button,而不是一个LinkBut​​ton,因此强制转换是无效的,并且会抛出异常。

答案 1 :(得分:1)

答案 2 :(得分:0)

GridView中的按钮不响应直接事件。他们必须通过GridView的RowCommand事件实现。我已经看到你已经实施了OnRowCommand="GridView1_RowCommand"。所以现在你需要对图像按钮进行以下更改:

<asp:ImageButton ID="accept"  runat="server" CommandName="Accept" />

现在寻找&#34;接受&#34; GridView1_RowCommand事件处理程序中的命令名。

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
  if (e.CommandName == "Accept")
  {
    // Your code goes here
  }

}

我希望这会有所帮助。