当前位置:编程学习 > C#/ASP.NET >>

LinkButton行ImageButton报错.

DataList里执行Item事件的时候

<asp:DataList ID="ReaderThisType" runat="server" RepeatDirection="Horizontal" DataKeyField="编号" OnDeleteCommand="ReaderThisType_DeleteCommand">
            <ItemTemplate>
            <table cellpadding="0" cellspacing="0" width="150" style="background-color:#E6EBFE; border-right:1px dashed #9BC53B;">
            <tr>
            <td width="130">
            <%#Eval("news_type") %>
            </td>
            <td width="20">
                <asp:LinkButton ID="LinkButton1" runat="server" CommandName="delete">删</asp:LinkButton>
                <asp:ImageButton ID="LinkButton1" runat="server" CommandName="delete" ImageUrl="~/images/del.png" />
            </td>
            </tr>
            </table>
            </ItemTemplate>
            </asp:DataList>

可以
但是换成  <asp:ImageButton ID="LinkButton1" runat="server" CommandName="delete" ImageUrl="~/images/del.png" />
就会报
回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解

我的Page事件
protected void Page_Load(object sender, EventArgs e)
    {
        
        data UserLooking = new data();
        UserLooking.UserLogin();
        ManageType();

        if (type.Items.Count < 1)
        {
            data GetNewsType = new data();
            DataSet ds = GetNewsType.ReturnDataSet("select news_type,编号 from news_type");
            type.DataTextField = "news_type";
            type.DataValueField = "news_type";
            type.DataSource = ds.Tables[0].DefaultView;
            type.DataBind();
            
        } --------------------编程问答-------------------- 2个地方你可以注意一下:
1》建议你在  Page_Load里面加上 if(!IsPostback)(这个可以不加,只是看起来不太顺眼)
2》
                <asp:LinkButton ID="LinkButton1" runat="server" CommandName="delete">删 </asp:LinkButton>
                <asp:ImageButton ID="LinkButton1" runat="server" CommandName="delete" ImageUrl="~/images/del.png" /> 
   2个控件 ID 相同????
不过看你的 Code ,估计就是 CommandName 的问题了
你吧CommandName 换个名字,不要叫 系统内置的 delete 了,我看你的 Code 里面也没有写 Delete Handler
所以才报这个错吧
你换成  CommandName="mydelete" 应该不会有问题了
--------------------编程问答-------------------- 原来不是2个只有一个

就会报 
回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解 

我感觉主要在这里~1`
谁能给解释下。

还有这个页面有FCK编辑器 --------------------编程问答-------------------- <asp:ImageButton ID="LinkButton1" runat="server" CommandName="delete" ImageUrl="~/images/del.png" /> 
CommandName="delete" 
这个是响应delete事件的,你得定义这个事件 --------------------编程问答-------------------- 楼上的没看见我本来就有CommandName="delete" 么?
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,