我有一个 jQuery 对话框,当按下按钮时会弹出。我有一个 GridView,其中包含来自我的数据库的结果。我想让 GridView 显示我搜索的结果。因此,我添加了 aasp:textbox
和 a asp:button
,想法是当我按下按钮时,它会调用与我的数据库连接的函数,然后在 GridView 中显示结果。所以基本上,当 jQuery 弹出时,它应该显示一个空的 GridView(或无),然后当我搜索某些内容时,它应该显示结果。这是我的 main.aspx 代码:
<div id="ViewPlaces">
<asp:TextBox ID="viewPlaceTextbox" runat="server" placeholder="Search..." />
<asp:Button ID="viewPlaceBtn" OnClick="getSearchedPlace" runat="server" Text="Search for place" />
<asp:GridView ID="GridView1" AllowPaging="true" GridLines="None" CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle="alt" runat="server" AllowSorting="True"
AutoGenerateColumns="False"
Width="750px"
CausesValidation="False" ShowHeaderWhenEmpty="true" ShowHeader="true">
<Columns>
<asp:BoundField DataField="place_id" HeaderText="Id" ReadOnly="True" />
<asp:BoundField DataField="place_name" HeaderText="Name" />
<asp:BoundField DataField="place_city" HeaderText="City" />
<asp:BoundField DataField="place_land" HeaderText="Land" />
<asp:BoundField DataField="place_desc" HeaderText="Description" />
</Columns>
</asp:GridView>
</div>
这是jQuery代码:
$('#ViewPlaces').dialog(dialogOpts5);
$.fx.speeds._default = 500;
$(function () {
$("#ViewPlaces").dialog({
autoOpen: false,
show: "blind",
hide: "explode",
});
$("#viewallplaces").click(function () {
$("#ViewPlaces").dialog("open");
return false;
});
});
在我的 c# 代码中,问题是如果我不调用从数据库中获取结果的函数Page_Load
,那么当我按下打开 jQuery 对话框的按钮时,不会加载 GridView。否则,函数如下所示:
protected void getPlaces()
{
List<Place> pl = new List<Place>();
pl = functions.getPlaces();
GridView1.DataSource = pl;
GridView1.DataBind();
}
该getPlaces()
函数返回一个地点列表。这不是问题,它有效,我已经测试过了。