Jquery与asp.net ajax是UpdatePanel使用问题
使用JQuery1.3.2的和它的UI库,弹出一个模式的窗口,简单代码如下:
<link href="../Css/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" id="child" />
<script src="../Script/jquery-1[1].3.2-vsdoc.js" type="text/javascript"></script>
<script src="../Script/jquery-ui.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript">
$(function() {
$("#aa").dialog({
height: '500',
width: '710',
modal: true,
autoOpen: false,
overlay: {
backgroundColor: '#000',
opacity: 0.5
}
});
});
</script>
<asp:ScriptManager ID="ScriptManager1" runat="server"
EnableScriptGlobalization="True">
</asp:ScriptManager>
<a href="#" onclick="$('#aa').dialog('open');">open</a>
<div id="aa" title="asdf">
<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButon1_Click" ">LinkButton</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
</div>
protected void LinkButon1_Click(object sender, EventArgs e)
{
string text = TextBox1.Text;
}
问题是在点击LinkButton后,text的值始终为空,也就是说TextBox1控件没有把值传过去,如何解决呀?
------解决方案--------------------
jquery dialog会把对话框内容移到form以外,和UpdatePanel有冲突,你可以照下面这样修改:
<script type="text/javascript" language="javascript">
$(function() {
$("#aa").dialog({
height: '500',
width: '710',
modal: true,
autoOpen: false,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
open: function() { $("body > div[role=dialog]").appendTo("#form1"); }
});
});
</script>
建议最好还是不要用UpdatePanel,用jquery自己的ajax调用后台
------解决方案--------------------点击时用JS把TextBox的值赋给一个隐藏域控件
后台再读取隐藏域控件的值