這個問題一直在嘮叨我好幾天了。這是的情況:使用AJAX和jQuery基於輸入加載數據網格
我有一個DataGrid
沒有數據加載到它。我也有一個Input Text
,它使用AJAX和jQuery來顯示用戶在鍵入時可以選擇的值的現有列表。這是一個搜索系統,將根據用戶輸入的內容提取所有記錄。然後我有一個Input Button
,按下時需要填入DataGrid
。我需要的AJAX是爲了刷新DataGrid
每次按下按鈕時不刷新整個頁面,因此輸入而不是asp。我的問題是讓JavaScript/* jQuery *調用將要使用的方法。我也需要它來獲得InputText
的價值並將其用於搜索。這是我迄今爲止(不完整,需要幫助完成)。
數據網格(這是從另一DataGrid
使用相同的數據複製,只是縮短。可能是不正確的編碼。)
<asp:DataGrid ID="Display" AutoGenerateColumns="false" ViewStateMode="Disabled" runat="server">
<Columns>
<asp:TemplateColumn>
<HeaderTemplate>
Line</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="LineNumber" Text='<%# DataBinder.Eval(Container.DataItem, "LineNumber") %>'
runat="server" /></ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
Date</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="CreateDate" Text='<%# DataBinder.Eval(Container.DataItem, "CreateDate", "{0: MM/dd/yyyy}") %>'
runat="server" /></ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderTemplate>
Operator</HeaderTemplate>
<ItemTemplate>
<asp:Label ID="Operator" Text='<%# DataBinder.Eval(Container.DataItem, "Operator") %>'
runat="server" /></ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
的JavaScript/jQuery的(這被放置在Button
「的 「onclick」 事件。)
function refresh() {
$.ajax({
type: "POST",
url: "WebForm1.aspx/PopulateGrid",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (result) { alert(result.status + ' ' + result.statusText); }
}
);
};
代碼背後(我想嘗試和使用的代碼是後但如果需要處理程序,請讓我知道。)
[WebMethod]
protected void PopulateGrid()
{
using (Entities ent = new Entities(ConfigurationManager.ConnectionStrings["QCConnString"].ToString()))
{
string oper = Request.QueryString["getData"].ToString();
AllDataSources ds = new AllDataSources();
Display.DataSource = ds.refreshData(ent, oper);
Display.DataBind();
}
}
,因爲我更接近答案,或者已經來到了一個解決方案,我會更新這個。我真的希望有人能幫我解決這個問題。我奮鬥了這麼久。
難道你不能只把按鈕和網格放在更新面板,並填充網格的方式? –
我聽說使用MS AJAX不是一個好主意..所以我想盡量避免這種情況。但我會認爲這是最後的手段。 – SiSan
你將需要一個異步回調來完成綁定,所以我認爲你沒有太多的選擇。您無法綁定客戶端上的DataGrid。如果MS AJAX是適合您的工作的工具,您應該使用它。 –