用了updatepanel后 gridview 出现错误 "回传或回调的参数无效"

「已注销」 2009-04-30 02:55:56
代码如下:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:GridView ID="GridView1" runat="server" GridLines="None" AutoGenerateColumns="False" >
<Columns>
<asp:BoundField DataField="编号" HeaderText="编号" />
<asp:BoundField DataField="姓名" HeaderText="姓名" />
<asp:BoundField DataField="所在单位" HeaderText="所在单位" />
<asp:BoundField DataField="状态" HeaderText="状态" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button2" runat="server" OnClick="Button2_Click" SkinID="Button" Text="状态设置" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="timChoice" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
<asp:Timer ID="timChoice" runat="server" Interval="2500" OnTick="timChoice_Tick"></asp:Timer>

<asp:Panel ID="Panel1" runat="server" Visible="false">
<asp:TextBox ID="txtBox1" runat="server" />
<asp:Button ID="btn1" runat="server" Text="确定"
</asp:Panel>


.cs 代码:
protected void Button2_Click(object sender, EventArgs e)
{
Panel1.Visible=true;

================================
在使用UpdatePanel之前一切正常,但使用后 点击“状态设置”就出错
回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
把 EnableEventValidation 设为false后错误是不报了,但是 按钮事件不响应了,
向各位高人请教了,这是怎么回事,该怎么解决
...全文
267 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzzz999 2009-05-05
  • 打赏
  • 举报
回复
我用你的方法没有错.
你也可以用
--前台
<asp:LinkButton ID="LinkButton1" CommandName="EditType" CommandArgument='<%# ((GridViewRow) Container).RowIndex %>' runat="server">编辑</asp:LinkButton>
--后台
protected void GVType_RowCommand(object sender, GridViewCommandEventArgs e)
{
string name = e.CommandName.ToString();
DataKey datalist = GVType.DataKeys[Convert.ToInt32(e.CommandArgument)];
string id = datalist["Typeid"].ToString(); //接收DataKeyNames值
switch (name)
{
case "EditType":
panel1.Visible = true;

break;
default:
break;
}
}
littlehand 2009-05-05
  • 打赏
  • 举报
回复
顶了再说..
Lxpd 2009-05-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 takako_mu 的回复:]
你用了Response.Write();
將其去掉就OK了。
[/Quote] 应该是这个问题 去掉Response.Write
CloudOfFly 2009-05-05
  • 打赏
  • 举报
回复

string strURL = string.Format("CheckReportList.aspx?ID={0}", RegId);

ScriptManager.RegisterStartupScript(this.UpdatePanel1, this.GetType(), "updateScript", "window.location.href='" + strURL + "';", true);
CloudOfFly 2009-05-05
  • 打赏
  • 举报
回复
用UpdatePanel1 就不要用Response.Write()
a2220046 2009-04-30
  • 打赏
  • 举报
回复
帮顶一下
s1234567 2009-04-30
  • 打赏
  • 举报
回复
改为Ajax方式后最好不要在按钮事件中动作,
把Panel1.Visible=true;放到其他的位置,例如page_load、item_created中试试。
takako_mu 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Jzryhp 的回复:]
补充一下
我需要在
Button2_Click获取服务器端的一些参数
[/Quote]

ScriptManager.RegisterStartupScript(this, this.GetType(), "edit", "YourJS('"+參數1+",'"+參數2+"'')", true);


function YourJS(parm1,parm2)
{
//寫你的JS
}


takako_mu 2009-04-30
  • 打赏
  • 举报
回复
你是不是用了Response.Write()?
有就把它去掉.
「已注销」 2009-04-30
  • 打赏
  • 举报
回复
补充一下
我需要在
Button2_Click获取服务器端的一些参数
「已注销」 2009-04-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 takako_mu 的回复:]
你用了Response.Write();
將其去掉就OK了。
[/Quote]

将什么去掉?
takako_mu 2009-04-30
  • 打赏
  • 举报
回复

ScriptManager.RegisterStartupScript(this, this.GetType(), "edit", "YourJS()", true);


function YourJS()
{
//寫你的JS
alert('= =');
}
takako_mu 2009-04-30
  • 打赏
  • 举报
回复
你用了Response.Write();
將其去掉就OK了。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧