0

ボタンを押すとポップアップする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()関数は場所のリストを返します。それは問題ではありません。動作し、私はそれをテストしました。

4

2 に答える 2

1

このシナリオでは、gridviewやupdatepanelなどのWebフォームコントロールを使用してjqueryを使用しないか、基本的なHTML要素を使用してjqueryを接続し、エンドポイント(url)を呼び出して結果をクライアント側にレンダリングします。しかし、両方ではありません。

于 2012-11-28T13:25:51.327 に答える
1

グリッドビューにデータのみを表示している場合は、グリッドビューを生成する別のページを作成できます。

このページがグリッドビューのみを保持していると想像してください。ページへの jquery ajax 呼び出しを使用して、url の gridview のパラメーターをクエリ文字列として渡すことができます。次に、グリッドビュー ページのページ読み込み時に、クエリ文字列パラメーターを確認し、それらを使用してデータベースにデータをクエリし、データを使用してグリッドビューをバインドします。

ajax呼び出しはhtmlを返し、ポップアップにhtmlを挿入するだけです

$.ajax({
 url: "yourgridpage.aspx?dat1=YourValue1&dat2=YourVal2"
}).done(data,function() { 
 $.popUp.html(data);
});
于 2012-11-28T16:48:09.140 に答える