我定義了一個 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 實體框架)更改或數據綁定組件。
javascript 強制 ASP.NET 表單重新加載與 JQuery 自動完成文本框填充沖突?
SMILET
2024-01-18 16:19:06