jquery UI对话框中使用的Asp.net控件值在代码后面是空的
asp.net controls values used on jquery ui dialog are empty in code behind
我正在做一个asp.net应用程序。我使用Jquery UI向数据库添加记录。这是标记。
<div id="AddShippingPopup" class="popup" title="New Shipping Address">
<p>Shipping Address</p>
<table>
<tr>
<td> Line 1:</td>
<td><asp:TextBox ID="txtShippingLine1" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>Line 2:</td>
<td><asp:TextBox ID="txtShippingLine2" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>City:</td>
<td> <asp:TextBox ID="txtShippingCity" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>State:</td>
<td> <asp:DropDownList ID="ddlShipingState" runat="server" Width="200px" CssClass="required">
<asp:ListItem Value="">Please select</asp:ListItem>
<asp:ListItem Value="AK">Alaska</asp:ListItem>
</asp:DropDownList></td>
</tr>
<tr>
<td>Zip:</td>
<td><asp:TextBox ID="txtShippingZip" runat="server" Width="50px"></asp:TextBox></td>
</tr>
<tr>
<td>Preferred:</td>
<td>
<asp:CheckBox ID="chkPreferredShipAdd" runat="server" />
</td>
</tr>
</table>
</div>
在这个div之外有一个按钮:
<asp:Button ID="btnAddShipping" runat="server" Text="Add Shipping" style = "display:none" OnClick = "btnAddShipping_Click" />
和Jquery对话框代码:
$("#AddShippingPopup").dialog({
autoOpen: false,
modal: true,
width: 500,
height: 370,
buttons: {
"Cancel": function () {
$(this).dialog("close");
},
"Save": function () {
$("[id*=btnAddShipping]").click();
$(this).dialog("close");
}
}
});
function createShippingAddress() {
$("#AddShippingPopup").dialog("widget").find(".ui-dialog-titlebar-close").hide();
$("#AddShippingPopup").dialog("open");
return false;
}
,这里是初始化对话框的链接:
<asp:LinkButton ID="lnkAddNewShippingAddress" runat="server" Font-Size="Smaller" OnClientClick="createShippingAddress(); return false;">Add New</asp:LinkButton>
,但当单击Save按钮时,文本框和下拉框的值为空。空字符串保存在db中。
在这种情况下,常见的问题是javascript Dialog 将其内容呈现在asp.net表单元素之外。
因此,通过使用appendTo
选项强制他在表单内呈现。下面是一个来自jQuery站点的示例:
$( ".selector" ).dialog({ appendTo: "#someElem" });
,并确保您追加的元素,是在您的asp.net表单。
您的代码将如下:
$("#AddShippingPopup").dialog({
appendTo: "#dialogAfterMe",
autoOpen: false,
modal: true,
width: 500,
height: 370,
buttons: {
"Cancel": function () {
$(this).dialog("close");
},
"Save": function () {
$("[id*=btnAddShipping]").click();
$(this).dialog("close");
}
}
});
并把这个div放到表单
的某个地方<div id="dialogAfterMe"></div>
相关文章:
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- 如何从c#代码中获取asp控件id
- 是否有可能在 WebBrowser 控件中调试 JavaScript 代码
- 无法修改Controls集合,因为控件包含代码块(即<%.%>).无法更正此错误
- ASP.NET控件代码隐藏未执行
- 无法修改控件集合,因为控件包含代码块(即<%.%>)
- 如何在JS代码中设置WinJS.UI.Repeater控件的数据
- 如何将javascript代码附加到asp.net中的这个动态控件文本框中
- 将页面控件添加到数据表,但当代码运行时,页面中不显示任何内容
- 为什么我不能在 Javascript 中或从代码隐藏中将焦点设置为 ASP.Net TextBox 控件
- 如何在没有“runat=server”的情况下访问 C# 代码中的 HTML 控件
- Metro Style App:如何从 Web 视图控件中运行的 JavaScript 代码调用 C# 方法
- 为什么我的代码在第一次 setInterval 调用时删除复选框控件
- 如何在代码隐藏中访问控件的值,该值由 JavaScript 动态创建
- 从JavaScript或代码隐藏设置AjaxFileUpload控件的te值
- 当我使用javascript更改在代码隐藏中创建的控件时,就会发生错误
- 无法修改控件集合,因为控件包含代码块(即 <% ..%>) Ajax 工具包 HTML 编辑器
- asp:LinkButton通过文字控件创建,不会在后面触发代码
- 如何在代码隐藏中从用户控件中提取所有javascript代码