我定义了一个 ASP.NET 表单,其中包含以下表单元素: a TextBox、 anHiddenField和 a ,DropDownList定义如下:
<asp:TextBox ID="_txtData" runat="server" ClientIDMode="Static" />
<asp:HiddenField ID="_hdnData" runat="server" ClientIDMode="Static" Value="" />
<asp:DropDownList ID="_ddlData" runat="server" DataSourceID="_sdsData" DataTextField="data" DataValueField="id" AppendDataBoundItems="true" AutoPostBack="true" >
<asp:ListItem Text="TUTTI" Value="" Selected="True" />
</asp:DropDownList>
_ddlData由以这种方式定义的数据源提供:
<asp:SqlDataSource
ID="_sdsData"
runat="server"
ConnectionString="<%$ ConnectionStrings:db %>"
ProviderName="<%$ ConnectionStrings:db.ProviderName %>"
SelectCommand="
SELECT
id,
data
FROM
table_data
WHERE
(@id IS NULL) OR (id = @id)
ORDER BY targa">
<SelectParameters>
<asp:ControlParameter
ControlID="_hdnData"
PropertyName="Value"
Direction="Input"
ConvertEmptyStringToNull="true"
DbType="Int32"
DefaultValue=""
Name="id" />
</SelectParameters>
</asp:SqlDataSource>
_hdnData并_txtData通过 javascript/JQuery 以这种方式提供:
[原代码]
var _hdnData = null;
var _txtData = null;
$(function () {
_hdnData = $("input[id$='_hdnData']");
_txtData = $("input[id$='_txtData']");
GetData(_txtData , _hdnData );
});
function GetData(source_widget, dest_widget) {
$.ajax({
type: "POST",
url: "/Service/WSDataService.asmx/GetData",
dataType: "json",
data: "{}",
contentType: "application/json; charset=utf-8",
success: function (data) {
var datafromServer = data.d.split("<br />");
当 JQuery 的 select 事件autocomplete
发生时,表单被提交,一旦重新加载,我注意到两个主要问题:
_txtData
设置为发生选择事件时用户输入的部分值(即不是菜单上选择/可见的实际值autocomplete
)
_ddlData
选择事件之前存在的值将与来自其数据源的新数据合并。
顺便说一句,我目前不想SQLDataSource
用更新的或更新的范例(如 Microsoft 实体框架)更改或数据绑定组件。
UYOU
相关分类