在按钮ASP.NET c#上禁用回发
发布时间:2020-12-16 07:35:46 所属栏目:asp.Net 来源:网络整理
导读:这是我正在做的一个例子 Page Load{ //Adds items to a panel (not an updatepanel just a normal panel control)} protected void btnNexMod_Click(object sender,EventArgs e){ // Calls DoWork() and Appends more items to the same panel} 我的问题是as
这是我正在做的一个例子
Page Load { //Adds items to a panel (not an updatepanel just a normal panel control) } protected void btnNexMod_Click(object sender,EventArgs e) { // Calls DoWork() and Appends more items to the same panel } 我的问题是asp:按钮正在进行回发以及调用DoWork() 因此,重新调用我的页面加载,重新初始化我的面板:( 我希望我添加到面板中的项目留在那里! 所有的帮助表示赞赏,而不是寻找你的答案.任何步骤都表示赞赏谢谢! 这是我的问题的一个确切示例. protected void Page_Load(object sender,EventArgs e) { CheckBox chkbox = new CheckBox(); chkbox.Text = "hey"; chkbox.ID = "chk" + "hey"; // Add our checkbox to the panel Panel1.Controls.Add(chkbox); } protected void Button1_Click(object sender,EventArgs e) { CheckBox chkbox = new CheckBox(); chkbox.Text = "hey"; chkbox.ID = "chk" + "hey"; // Add our checkbox to the panel Panel1.Controls.Add(chkbox); } 页面上只有一个空面板和一个带有此单击偶数处理程序的按钮. 我也试过这个,它仍然无法正常工作.现在清除附加到面板的初始项目. if (!Page.IsPostBack) // to avoid reloading your control on postback { CheckBox chkbox = new CheckBox(); chkbox.Text = "Initial"; chkbox.ID = "chk" + "Initial"; // Add our checkbox to the panel Panel1.Controls.Add(chkbox); } 解决方法
如果要动态地向Panel添加控件,则必须在每次回发时重新创建控件,并确保为控件分配相同的ID,以便ViewState可以填充值.通常最好在OnInit期间重新创建动态内容,但在某些情况下这可能很难.
我最喜欢的工具之一是DynamicControlsPlaceHolder,因为你可以为它添加动态控件,它会自动保留它们,而不需要在页面上进行任何额外的编码.只需添加控件,它将完成剩下的工作. 这是链接: 至于阻止按钮执行回发,请使用OnClientClick并返回false. OnClientClick="return false;" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 上载ASP.NET MVC Web api控制器中的文件
- 在ASP.NET中流式传输大文件上传
- 404的ASP.NET自定义错误页面为http状态返回302
- asp.net AJAX客户端调用服务器上的慢速异步进程的最佳实践
- asp.net-mvc – 有没有办法为MVC控制器中的每个动作设置[Au
- asp.net-mvc – 如何传递特殊字符使ASP.NET MVC可以正确处理
- 在F#中开发ASP.NET和ASP.NET MVC应用程序的缺点?
- asp.net – 如何使用IIS7在web.config中设置处理程序?
- 为.NET Core项目定义Item Template
- asp.net-mvc-2 – MVC Html.TextBoxFor MaxLength和Value