再次遇到:
回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 aspx页面:<asp:DataGrid ID="dg1" runat="server" AutoGenerateColumns="false" DataKeyField="cid" HorizontalAlign="center" Width="750" AllowPaging="true" AllowSorting="true"
PageSize="5" OnPageIndexChanged="dg1_PageIndexChanged" OnCancelCommand="dg1_CancelCommand" OnDeleteCommand="dg1_DeleteCommand" OnEditCommand="dg1_EditCommand"
OnUpdateCommand="dg1_UpdateCommand" OnItemCommand="dg1_ItemCommand">
<HeaderStyle HorizontalAlign="center" BackColor="#66ccff" ForeColor="white" />
<PagerStyle Mode="numericpages" HorizontalAlign="center" Font-Bold="true" Font-Size="X-Large"/>
<ItemStyle BackColor="moccasin" />
<Columns>
<asp:BoundColumn HeaderText="名称" DataField="cname"></asp:BoundColumn>
<asp:BoundColumn HeaderText="分类描述" DataField="descrition"></asp:BoundColumn>
<asp:EditCommandColumn EditText="编辑" CancelText="取消" UpdateText="更新" HeaderText="功能" ButtonType="pushButton" ItemStyle-HorizontalAlign="center"></asp:EditCommandColumn>
<asp:ButtonColumn ButtonType="pushButton" Text="删除" HeaderText="功能" CommandName="del" ItemStyle-HorizontalAlign="center"></asp:ButtonColumn>
</Columns>
</asp:DataGrid>
aspx.cs页面:protected void Page_Load(object sender, EventArgs e)
{
bindlist();
}
DataSet createdataset(string strsql, string filename, string tablename)
{
string con1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("") + "/App_Data/" + filename;
OleDbDataAdapter objcmd = new OleDbDataAdapter(strsql, con1);
DataSet ds = new DataSet();
objcmd.Fill(ds, tablename);
return ds;
}
void bindlist()
{
string strsql = "select * from class";
dg1.DataSource = createdataset(strsql, "blog.mdb", "class");
dg1.DataBind();
}
protected void dg1_CancelCommand(object source, DataGridCommandEventArgs e)
{
dg1.EditItemIndex = -1;
bindlist();
} protected void dg1_DeleteCommand(object source, DataGridCommandEventArgs e)
{ } protected void dg1_EditCommand(object source, DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex;
bindlist();
} protected void dg1_UpdateCommand(object source, DataGridCommandEventArgs e)
{
try
{
string strsql = "update class set cname=@cname,descrition=@csymbol where " + dg1.DataKeyField + "=" + Convert.ToString(dg1.DataKeys[e.Item.ItemIndex]);
OleDbConnection con1 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("") + "/App_Data/blog.mdb");
OleDbCommand cmd1 = new OleDbCommand(strsql, con1);
cmd1.Parameters.Add("@cname", OleDbType.VarChar).Value = ((TextBox)e.Item.Cells[0].Controls[0]).Text;
cmd1.Parameters.Add("@csymbol", OleDbType.VarChar).Value = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
con1.Open();
cmd1.ExecuteNonQuery();
con1.Close();
}
catch (Exception ecp)
{
Response.Write("<font color='olive'><b>很抱歉!程序在执行过程中出现了异常,请查看以下错误信息,以便迅速修正此错误!</b></font><hr color='gray'/><p/><font color='red'>捕捉到的错误信息如下:<br>" + ecp.Message + "</font>");
}
dg1.EditItemIndex = -1;
bindlist();
}
protected void dg1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
dg1.CurrentPageIndex = e.NewPageIndex;
bindlist();
} protected void dg1_ItemCommand(object source, DataGridCommandEventArgs e)
{
if (e.CommandName == "del")
{
OleDbConnection con1 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("") + "/App_Data/blog.mdb");
string strsql = "delete from class where " + dg1.DataKeyField + "=" + Convert.ToString(dg1.DataKeys[e.Item.ItemIndex]);
OleDbCommand cmd1 = new OleDbCommand(strsql, con1);
con1.Open();
cmd1.ExecuteNonQuery();
con1.Close();
bindlist();
}
}这是我从我另一个页面修改了数据库做的.出现了上面提示的错误,很着急,看了又看,想不出来,代码很乱,谢谢
回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。 aspx页面:<asp:DataGrid ID="dg1" runat="server" AutoGenerateColumns="false" DataKeyField="cid" HorizontalAlign="center" Width="750" AllowPaging="true" AllowSorting="true"
PageSize="5" OnPageIndexChanged="dg1_PageIndexChanged" OnCancelCommand="dg1_CancelCommand" OnDeleteCommand="dg1_DeleteCommand" OnEditCommand="dg1_EditCommand"
OnUpdateCommand="dg1_UpdateCommand" OnItemCommand="dg1_ItemCommand">
<HeaderStyle HorizontalAlign="center" BackColor="#66ccff" ForeColor="white" />
<PagerStyle Mode="numericpages" HorizontalAlign="center" Font-Bold="true" Font-Size="X-Large"/>
<ItemStyle BackColor="moccasin" />
<Columns>
<asp:BoundColumn HeaderText="名称" DataField="cname"></asp:BoundColumn>
<asp:BoundColumn HeaderText="分类描述" DataField="descrition"></asp:BoundColumn>
<asp:EditCommandColumn EditText="编辑" CancelText="取消" UpdateText="更新" HeaderText="功能" ButtonType="pushButton" ItemStyle-HorizontalAlign="center"></asp:EditCommandColumn>
<asp:ButtonColumn ButtonType="pushButton" Text="删除" HeaderText="功能" CommandName="del" ItemStyle-HorizontalAlign="center"></asp:ButtonColumn>
</Columns>
</asp:DataGrid>
aspx.cs页面:protected void Page_Load(object sender, EventArgs e)
{
bindlist();
}
DataSet createdataset(string strsql, string filename, string tablename)
{
string con1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("") + "/App_Data/" + filename;
OleDbDataAdapter objcmd = new OleDbDataAdapter(strsql, con1);
DataSet ds = new DataSet();
objcmd.Fill(ds, tablename);
return ds;
}
void bindlist()
{
string strsql = "select * from class";
dg1.DataSource = createdataset(strsql, "blog.mdb", "class");
dg1.DataBind();
}
protected void dg1_CancelCommand(object source, DataGridCommandEventArgs e)
{
dg1.EditItemIndex = -1;
bindlist();
} protected void dg1_DeleteCommand(object source, DataGridCommandEventArgs e)
{ } protected void dg1_EditCommand(object source, DataGridCommandEventArgs e)
{
dg1.EditItemIndex = e.Item.ItemIndex;
bindlist();
} protected void dg1_UpdateCommand(object source, DataGridCommandEventArgs e)
{
try
{
string strsql = "update class set cname=@cname,descrition=@csymbol where " + dg1.DataKeyField + "=" + Convert.ToString(dg1.DataKeys[e.Item.ItemIndex]);
OleDbConnection con1 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("") + "/App_Data/blog.mdb");
OleDbCommand cmd1 = new OleDbCommand(strsql, con1);
cmd1.Parameters.Add("@cname", OleDbType.VarChar).Value = ((TextBox)e.Item.Cells[0].Controls[0]).Text;
cmd1.Parameters.Add("@csymbol", OleDbType.VarChar).Value = ((TextBox)e.Item.Cells[1].Controls[0]).Text;
con1.Open();
cmd1.ExecuteNonQuery();
con1.Close();
}
catch (Exception ecp)
{
Response.Write("<font color='olive'><b>很抱歉!程序在执行过程中出现了异常,请查看以下错误信息,以便迅速修正此错误!</b></font><hr color='gray'/><p/><font color='red'>捕捉到的错误信息如下:<br>" + ecp.Message + "</font>");
}
dg1.EditItemIndex = -1;
bindlist();
}
protected void dg1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
{
dg1.CurrentPageIndex = e.NewPageIndex;
bindlist();
} protected void dg1_ItemCommand(object source, DataGridCommandEventArgs e)
{
if (e.CommandName == "del")
{
OleDbConnection con1 = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("") + "/App_Data/blog.mdb");
string strsql = "delete from class where " + dg1.DataKeyField + "=" + Convert.ToString(dg1.DataKeys[e.Item.ItemIndex]);
OleDbCommand cmd1 = new OleDbCommand(strsql, con1);
con1.Open();
cmd1.ExecuteNonQuery();
con1.Close();
bindlist();
}
}这是我从我另一个页面修改了数据库做的.出现了上面提示的错误,很着急,看了又看,想不出来,代码很乱,谢谢
解决方案 »
- 未能加载文件或程序集“System.Transactions”或它的某一个依赖项。试图加载格式不正确的程序。
- WebClient无法读取该网页内容
- 使用“new”关键字创建对象实例
- 客户机运行publish.htm上安装问题(c#+sql server2005 ,webservice 开发技术 )
- 是不是要写VS的工具箱的插件?怎么写?
- 关于初学者的若干问题20040820
- 将pb代码转换成.net代码的问题
- 关于页面和用户控件中事件如何处理????
- <%%>与<script>代码块有什么区别?什么场合选择哪个?
- 升星星了~~~散分哦~~~~~~~~~
- 层传值的问题?
- asp.net FCKeditor的值怎么样保存为html文件
这里:
protected void Page_Load(object sender, EventArgs e)
{
bindlist();
}
改成
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
bindlist();
}
}