这是书上的一个例子,可是我调试不成,是说GridView的ButtonField按钮被按下时,为了添加客户端脚本事件,必须得把ButtonField转换成TemplateField,可是我转换后呢,照书上说的加上了个 CommandArgument='<%# Container.DataItemIndex %>' 还是不能正常调用那个事件,说是因为参数不对,如下错误 :
回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
这是代码,哪个高手能帮我解答一下呀,顺便说一下,怎么给你分呀?
以下是代码:
<asp:GridView ID="gv_User" runat="server" CellPadding="4" ForeColor="#333333" AutoGenerateColumns="False" OnSelectedIndexChanged="gv_User_SelectedIndexChanged" OnRowCommand="gv_User_RowCommand">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:BoundField DataField="UserName" HeaderText="用户名" SortExpression="UserName" />
<asp:BoundField DataField="PassWord" HeaderText="密码" />
<asp:TemplateField HeaderText="主 页">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("web", "mailto:{0}") %>'
Text='<%# Eval("web", "公司网站") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="删除该列" ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="false" CommandName="del"
Text="按钮" OnClientClick="return confirm('确定要删除吗?')" CommandArgument='<%# Container.DataItemIndex %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField ButtonType="Button" CommandName="del" HeaderText="删除(ButtonField"
ShowHeader="True" Text="删除" />
</Columns>
</asp:GridView>
回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
这是代码,哪个高手能帮我解答一下呀,顺便说一下,怎么给你分呀?
以下是代码:
<asp:GridView ID="gv_User" runat="server" CellPadding="4" ForeColor="#333333" AutoGenerateColumns="False" OnSelectedIndexChanged="gv_User_SelectedIndexChanged" OnRowCommand="gv_User_RowCommand">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
<Columns>
<asp:BoundField DataField="UserName" HeaderText="用户名" SortExpression="UserName" />
<asp:BoundField DataField="PassWord" HeaderText="密码" />
<asp:TemplateField HeaderText="主 页">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("web", "mailto:{0}") %>'
Text='<%# Eval("web", "公司网站") %>'></asp:HyperLink>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="删除该列" ShowHeader="False">
<ItemTemplate>
<asp:Button ID="Button1" runat="server" CausesValidation="false" CommandName="del"
Text="按钮" OnClientClick="return confirm('确定要删除吗?')" CommandArgument='<%# Container.DataItemIndex %>' />
</ItemTemplate>
</asp:TemplateField>
<asp:ButtonField ButtonType="Button" CommandName="del" HeaderText="删除(ButtonField"
ShowHeader="True" Text="删除" />
</Columns>
</asp:GridView>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货