0

ASP.NET Web アプリケーションがあります。アイテムPage_Loadを含むグリッド ビューで作成されます。<asp:Textbox>と検索ボタンもあります。PageMethodsポストバックを取り除くために使用しています。ボタンがクリックされると、javascript 関数が呼び出され、次にWebMethod. WebMethodは、検索条件に基づいてアイテムのリストを返します。

これらのアイテムを取得して GridView に設定するにはどうすればよいですか?

つまり、部分的な更新のようなものです。ボタンをクリックすると、GridView のみが更新されるはずです。

WebMethod のコードは次のとおりです。

[WebMethod]
    public static List<Item> SearchResults(string text)
    {
        ItemFunctions item_functions = new ItemFunctions();
        List<Item> items = new List<Item>();
        items = item_functions.searchResults(text);
        return items;
    }

GridView、ボタン、テキスト ボックスは次のとおりです。

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
<asp:TextBox ID="search_textbox" runat="server" />
        <input type="button" id="Button1" value="Search" onclick="SearchResults();" />
        <div id="searchResults_GridView" >
            <asp:GridView ID="GridView1" AllowPaging="true" GridLines="Both" runat="server" AllowSorting="True"
            AutoGenerateColumns="False"
            Width="740px"
            CausesValidation="False">
            <Columns>
                <asp:BoundField DataField="item_name" HeaderText="item_name" />
                <asp:BoundField DataField="item_description" HeaderText="item_description" />
                <asp:BoundField DataField="item_quantity" HeaderText="item_quantity" />
                <asp:BoundField DataField="category_name" HeaderText="category_name" />
                <asp:BoundField DataField="type_name" HeaderText="type_name" />
                <asp:BoundField DataField="item_available" HeaderText="item_available" />
                <asp:BoundField DataField="item_serial_number" HeaderText="item_serial_number" />
                <asp:BoundField DataField="item_permission_status" HeaderText="item_permission_status" />
                <asp:BoundField DataField="item_location" HeaderText="item_location" />
                <asp:CommandField ShowSelectButton="true" SelectText="View" />
            </Columns>
        </asp:GridView>
        </div>

これは、ボタンのクリック時に呼び出される SearchResults 関数です。

<script>
    function SearchResults() {
        PageMethods.SearchResults(OnSucceeded, OnFailed);
    }

    function OnSucceeded(result, userContext, methodName) {
    }

    function OnFailed(error, userContext, methodName) {
        alert("An error occured :(");
    }
</script>

私の JavaScript のスキルは非常に低く、まだ学習中です。それ以外の場合は、理論的には残りのコードは機能すると思います。

4

1 に答える 1