gridview模板列里,按钮不能触发rowcommand .
百度和谷歌了很久都没找到答案.
源码如下:
前台页面:
<asp:GridView ID="gvResumeList" runat="server" AutoGenerateColumns="False" Width="100%" OnRowCommand="gvResumeList_RowCommand" DataKeyNames="Id" ShowFooter="True">
<Columns>
<asp:BoundField DataField="Id" HeaderText="简历编号" />
<asp:BoundField DataField="ResumeName" HeaderText="简历名称" />
<asp:BoundField DataField="BuildTime" HeaderText="最后修改时间" />
<asp:TemplateField HeaderText="设置默认简历">
<ItemTemplate>
<asp:CheckBox ID="cbDefaultResume" runat="server" Checked='<%# Eval("DefaultResume") %>' Enabled="False" />
<asp:Button ID="btnDefault" runat="server"
CommandArgument='<%# DataBinder.Eval(Container.DataItem,"Id")%>'
CommandName="defaultResume"
Text='<%# (bool)Eval("DefaultResume")==true?"取消默认简历":"设置为默认简历" %>' />
<br />
</ItemTemplate>
<FooterTemplate>
<asp:HyperLink ID="hlAddResume" runat="server" NavigateUrl="~/add_resume.aspx">添加新简历</asp:HyperLink>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="设置公开简历">
<ItemTemplate>
<asp:CheckBox ID="cbGongkai" runat="server" Checked='<%# Eval("gongkai") %>' Enabled="False" />
<asp:Button ID="btnGongkai" runat="server" CommandName="gongKaiJianLi"
Text='<%# (bool)Eval("gongkai")==true?"取消公开简历":"设置为公开简历" %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField DataNavigateUrlFields="Id" Target="_blank" DataNavigateUrlFormatString="resume_page.aspx?Id={0}"
HeaderText="修改简历" Text="修改" />
<asp:HyperLinkField DataNavigateUrlFields="Id" Target="_blank" DataNavigateUrlFormatString="details_person.aspx?Id={0}"
HeaderText="预览" Text="预览" />
<asp:ButtonField ButtonType="Button" CommandName="deleteResume" HeaderText="删除简历"
Text="删除此简历" />
</Columns>
</asp:GridView>
后台代码,只为了测试用而随便加的.在swich处加断点测试时发现,模板列里按钮竟然是绕过去的.
buttonfield则会执行.
protected void gvResumeList_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{
case "defaultResume":
{
Response.Write("<script>alert('测试')</script>");
break;
}
case "gongKaiJianLi":
{
Response.Write("<script>alert('测试')</script>");
break;
}
case "deleteResume":
{
Response.Write("<script>alert('测试')</script>");
break;
}
default:
break;
}
}
谁知道是怎么回事?帮帮我,整一天了,到现在还没解决.快郁闷死了.