1

私はあなたの助けに感謝します。ページに updatepanel を追加しようとしているので、穴のページではなく、グリッドビューのみが更新されます。別の場所に挿入する必要がありますが、機能していないようですが、穴ページは更新されています。どこに挿入すればいいですか?

グリッドビューにデータを入力するドロップダウンリストがあります。これはコードです:

 <%@ Page Title="All Products" Language="C#" MasterPageFile="~/MasterPage/MasterPage.master" AutoEventWireup="true" CodeFile="All.aspx.cs" Inherits="Catalog_All" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    <style type="text/css">
        .style4
        {
            width: 100%;
        }
        .style5
        {
            width: 620px;
        }
        .style6
        {
            font-size: large;
            text-decoration: underline;
        }
    </style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<div>

  <asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="True" 
                    AutoPostBack="True" DataSourceID="SqlDataSource2" DataTextField="CategoryName" 
                    DataValueField="categoryId" 
        onselectedindexchanged="DropDownList1_SelectedIndexChanged">
                    <asp:ListItem Value="">choose pet</asp:ListItem>
                </asp:DropDownList>
                <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:AllPets %>" 
                    SelectCommand="SelectAllCategories" SelectCommandType="StoredProcedure">
                </asp:SqlDataSource>





    <table class="style4">
        <tr>
            <td colspan="2" class="style6">
                <strong>All products</strong></td>
        </tr>

        <tr>
            <td class="style5">
                &nbsp;</td>
            <td>

            </td>
        </tr>
        <tr>

            <td class="style5">

                <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                    DataKeyNames="ProductID" DataSourceID="SqlDataSource1" AllowPaging="True">


                    <Columns>
                        <asp:BoundField DataField="ProductName" HeaderText="product" 
                            SortExpression="ProductName" />
                        <asp:ImageField DataAlternateTextField="picPath" DataImageUrlField="picPath" 
                            HeaderText="pic">
        </asp:ImageField>
                        <asp:BoundField DataField="Price" HeaderText="price" 
                            SortExpression="Price" />
                        <asp:BoundField DataField="Summary" HeaderText="des" 
                            SortExpression="Summary" />
                    </Columns>

                </asp:GridView>

                <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                    ConnectionString="<%$ ConnectionStrings:get_products_bypet %>" 
                    SelectCommand="get_products_bypet" SelectCommandType="StoredProcedure">
                    <SelectParameters>
                        <asp:ControlParameter ControlID="DropDownList1" Name="categoryId" 
                            PropertyName="SelectedValue" Type="Int32" />
                    </SelectParameters>
                </asp:SqlDataSource>


            </td>
            <td>
                &nbsp;</td>
        </tr>
        <tr>
            <td class="style5">
                &nbsp;</td>
            <td>
                &nbsp;</td>
        </tr>
        <tr>
            <td class="style5">
                &nbsp;</td>
            <td>
                &nbsp;</td>
        </tr>
    </table>


</div>

</asp:Content>

助けてくれたタンクス

4

2 に答える 2

1

自動フルポストバックを行うDropDownListを使用するため、Contentタグの直後に最後まで追加します

    <asp:Content ID="Content2" ..>
        <asp:UpdatePanel ID="updPanl" runat="server" RenderMode="Block" UpdateMode="Conditional" >
        <ContentTemplate>
       ........ rest code .........
        </ContentTemplate>
        </asp:UpdatePanel>
    </asp:Content>
于 2012-10-06T15:18:33.583 に答える
0

これを試して、ドロップダウンリストとグリッドビューを同じ更新パネルに入れてください。ドロップダウンを同じパネルに配置したくない場合は、2 番目の回答を確認してください

<asp:UpdatePanel runat="server" ID="Upd">
<ContentTemplate>

      <%-- Dropdown list here should work --%>

      <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                DataKeyNames="ProductID" DataSourceID="SqlDataSource1" AllowPaging="True">


                <Columns>
                  ....
                </Columns>

            </asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>

ドロップダウンを同じ更新パネルに配置したくない場合は、トリガーを使用します

<%-- dropdown list outside here --%>
<asp:UpdatePanel runat="server" ID="Upd">
 <ContentTemplate>
       <%-- Only your Gridview here --%>
 </ContentTemplate>

 <Triggers>
 <asp:AsyncPostBackTrigger ControlID="DropdownList1" 
     EventName="SelectedIndexChange" />
 </Triggers>
 </asp:UpdatePanel>
于 2012-10-06T15:19:09.390 に答える