嗨我在我的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");
}
答案 0 :(得分:2)
它可能正在触发,但它会抛出异常(你的catch块会忽略)。例外是因为这一行:
LinkButton Link =(LinkButton)sender;
发件人是一个Button,而不是一个LinkButton,因此强制转换是无效的,并且会抛出异常。
答案 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
}
}
我希望这会有所帮助。