加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 带有UpdatePanel Viewstate问题的JQuery BlockUI

发布时间:2020-12-16 00:14:05 所属栏目:asp.Net 来源:网络整理
导读:我正在使用BlockUI来显示模态.在阻止模式中,我有一个更新面板.在更新面板中,我有一个文本框和一个按钮,可以将内容提交回服务器.到目前为止一切正常(调用blockUI,出现模态,按钮执行回发).但是,当按钮的click事件被触发时,即使输入了文本,文本框的值也始终为空
我正在使用BlockUI来显示模态.在阻止模式中,我有一个更新面板.在更新面板中,我有一个文本框和一个按钮,可以将内容提交回服务器.到目前为止一切正常(调用blockUI,出现模态,按钮执行回发).但是,当按钮的click事件被触发时,即使输入了文本,文本框的值也始终为空.更新面板更新时,文本框显示为空白.看来这可能是某种viewstate问题,我没有关闭viewstate.
<a href="javascript:$.blockUI({ message: $('#divTest') });">SHOW MODAL</a>

<div id="divTest" style="display: none;">
<asp:UpdatePanel ID="upTest" UpdateMode="Conditional" runat="server">
    <ContentTemplate>
        <asp:TextBox ID="txtTestVS" runat="server" /><br />
        <asp:Button ID="cmdTest" Text="TEST" OnClick="cmdTest_Click" UseSubmitBehavior="false" runat="server" />
    </ContentTemplate>
</asp:UpdatePanel>

服务器端:

protected void cmdTest_Click(object sender,EventArgs e)

{
string x = txtTestVS.Text;
}

字符串“x”始终等于“”.

解决方法

这是对话框插件的常见问题,问题是当内容放在blockUI容器中时,它会附加到< body>元素,不再以提交给服务器的形式.要解决这个问题,您需要稍微编辑一下blockUI代码:

这是来源:http://github.com/malsup/blockui/blob/master/jquery.blockUI.js

改变这个:
第262行:var layers = [lyr1,lyr2,lyr3],$par = full? $(‘body’):$(el);
to:var layers = [lyr1,$par = full? $(‘form’):$(el);

和这个:
第382行:els = $(‘body’).children().filter(‘.blockUI’).add(‘body> .blockUI’);
to:els = $(‘form’).children().filter(‘.blockUI’).add(‘form> .blockUI’);

这应该让你去,文本框值得通过.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读