我用了两个页面 和两个控件datalist控件
第一个datalist控件是select *的 没有where的
第二个datalist控件是 select * from whereid=@id的
也就是第一个控件 是所有商品
第二个控件是单个商品
但是我当从第一个控件跳到第二个单个商品的时候出现错误
错误类型回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentException: 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
我下边把两个代码发下
第一个控件
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" Debug="true"%>
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<table>
<tr><td><asp:ImageButton ID="ImageButton1" runat="server" OnClick="ImageButton1_Click" /></td></tr>
<tr><td>
<asp:Label ID="Label1" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"id") %>'></asp:Label>
</td></tr>
<tr><td>
<asp:Label ID="Label2" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"name") %>'></asp:Label>
</td></tr>
</table>
<asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
</ItemTemplate>
</asp:DataList>public partial class WebUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
Class1 aas = new Class1();
// string id= Request.QueryString["id"];
string id = "1";
string str = "select * from member where id>@id";
;
SqlConnection con =new SqlConnection("Data Source=ZH-B0140C4856DE;DataBase=ycw;User ID=sa;PWD=owen2000");
con.Open();
SqlDataAdapter ssd = new SqlDataAdapter(str,con);
SqlParameter[] parms={aas.MakeInParam("@id",SqlDbType.BigInt,50,id)};
ssd.SelectCommand.CommandType=CommandType.Text;
if (parms != null)
{
foreach (SqlParameter pp in parms)
ssd.SelectCommand.Parameters.Add(pp);
}
DataSet ds = new DataSet();
ssd.Fill(ds);
DataList1.DataSource = ds.Tables[0].DefaultView;
DataList1.DataKeyField = "id";
DataList1.DataBind();
con.Close(); }
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
int id =DataList1.SelectedIndex;
Response.Redirect("ima.aspx?id=DataList1.SelectedIndex");
}
}
第二个控件<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUser.ascx.cs" Inherits="WebUser" %>
<asp:DataList ID="DataList2" runat="server">
<ItemTemplate>
<table>
<tr><td><asp:ImageButton ID="ImageButton2" runat="server" OnClick="ImageButton1_Click" /></td></tr>
<tr><td>
<asp:Label ID="Label3" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"id") %>'></asp:Label>
</td></tr>
<tr><td>
<asp:Label ID="Label4" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"name") %>'></asp:Label>
</td></tr>
</table>
<asp:LinkButton ID="LinkButton2" runat="server">LinkButton</asp:LinkButton>
</ItemTemplate>
public partial class WebUser : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{ Class1 aas = new Class1();
string id= Request.QueryString["id"];
string str = "select * from member where id=@id";
;
SqlConnection con = new SqlConnection("Data Source=ZH-B0140C4856DE;DataBase=ycw;User ID=sa;PWD=owen2000");
con.Open();
SqlDataAdapter ssd = new SqlDataAdapter(str, con);
SqlParameter[] parms ={ aas.MakeInParam("@id", SqlDbType.BigInt, 50, id) };
ssd.SelectCommand.CommandType = CommandType.Text;
if (parms != null)
{
foreach (SqlParameter pp in parms)
ssd.SelectCommand.Parameters.Add(pp); }
DataSet ds = new DataSet();
ssd.Fill(ds);
DataList1.DataSource = ds.Tables[0].DefaultView;
DataList1.DataKeyField = "id";
DataList1.DataBind();
con.Close(); }
}我设了一个user.aspx文件 还设了一个 ima.aspx 把两个空间拖进去 然后点击第一个datalist里的图像控件 跳转 结果出错误了
倒地哪里出错误了 请高手帮忙找一下错误
第一个datalist控件是select *的 没有where的
第二个datalist控件是 select * from whereid=@id的
也就是第一个控件 是所有商品
第二个控件是单个商品
但是我当从第一个控件跳到第二个单个商品的时候出现错误
错误类型回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentException: 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
我下边把两个代码发下
第一个控件
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" Debug="true"%>
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<table>
<tr><td><asp:ImageButton ID="ImageButton1" runat="server" OnClick="ImageButton1_Click" /></td></tr>
<tr><td>
<asp:Label ID="Label1" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"id") %>'></asp:Label>
</td></tr>
<tr><td>
<asp:Label ID="Label2" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"name") %>'></asp:Label>
</td></tr>
</table>
<asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton>
</ItemTemplate>
</asp:DataList>public partial class WebUserControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
Class1 aas = new Class1();
// string id= Request.QueryString["id"];
string id = "1";
string str = "select * from member where id>@id";
;
SqlConnection con =new SqlConnection("Data Source=ZH-B0140C4856DE;DataBase=ycw;User ID=sa;PWD=owen2000");
con.Open();
SqlDataAdapter ssd = new SqlDataAdapter(str,con);
SqlParameter[] parms={aas.MakeInParam("@id",SqlDbType.BigInt,50,id)};
ssd.SelectCommand.CommandType=CommandType.Text;
if (parms != null)
{
foreach (SqlParameter pp in parms)
ssd.SelectCommand.Parameters.Add(pp);
}
DataSet ds = new DataSet();
ssd.Fill(ds);
DataList1.DataSource = ds.Tables[0].DefaultView;
DataList1.DataKeyField = "id";
DataList1.DataBind();
con.Close(); }
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
int id =DataList1.SelectedIndex;
Response.Redirect("ima.aspx?id=DataList1.SelectedIndex");
}
}
第二个控件<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUser.ascx.cs" Inherits="WebUser" %>
<asp:DataList ID="DataList2" runat="server">
<ItemTemplate>
<table>
<tr><td><asp:ImageButton ID="ImageButton2" runat="server" OnClick="ImageButton1_Click" /></td></tr>
<tr><td>
<asp:Label ID="Label3" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"id") %>'></asp:Label>
</td></tr>
<tr><td>
<asp:Label ID="Label4" runat="server" Text='<%#DataBinder.Eval(Container.DataItem,"name") %>'></asp:Label>
</td></tr>
</table>
<asp:LinkButton ID="LinkButton2" runat="server">LinkButton</asp:LinkButton>
</ItemTemplate>
public partial class WebUser : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{ Class1 aas = new Class1();
string id= Request.QueryString["id"];
string str = "select * from member where id=@id";
;
SqlConnection con = new SqlConnection("Data Source=ZH-B0140C4856DE;DataBase=ycw;User ID=sa;PWD=owen2000");
con.Open();
SqlDataAdapter ssd = new SqlDataAdapter(str, con);
SqlParameter[] parms ={ aas.MakeInParam("@id", SqlDbType.BigInt, 50, id) };
ssd.SelectCommand.CommandType = CommandType.Text;
if (parms != null)
{
foreach (SqlParameter pp in parms)
ssd.SelectCommand.Parameters.Add(pp); }
DataSet ds = new DataSet();
ssd.Fill(ds);
DataList1.DataSource = ds.Tables[0].DefaultView;
DataList1.DataKeyField = "id";
DataList1.DataBind();
con.Close(); }
}我设了一个user.aspx文件 还设了一个 ima.aspx 把两个空间拖进去 然后点击第一个datalist里的图像控件 跳转 结果出错误了
倒地哪里出错误了 请高手帮忙找一下错误
解决方案 »
- 视频网站开发问题
- 最近研究的一个项目中,有一个.cs文件竟达4万多行代码...
- 求资料完善度的做法!!
- 如何实现重叠
- 100分求解问题
- 为什么我本地的客户机连接远程的SQL过了一天就连接不上了,要改一下远程的SQL密码,这边又才可以连接呢,有谁知道为什么吗?
- 一个简单的关于字符替换的问题
- 图片正则 <img src=http://images.gg-art.com/auction/images1/13/13325.jpg>
- 急!!!!TextBox类型转换问题?
- 用DataGrid回复文章问题!这样设计回复文章的表能行吗?
- ajaxpro有的时候读取不了数据
- 请教一下三层当中的实体规范层~~~~~~不太明白
=======================================
以上的代码,楼主取到了id吗?
这个不能得到id吧?
{
if( e.CommandName == "aa" )
{
int id = int.Parse( e.CommandArgument );
Response.Redirect("url.aspx"); }
}
{
if( e.CommandName == "aa" )
{
int id = int.Parse( e.CommandArgument );
Response.Redirect("ima.aspx?id="+id);
}
}