在gridview外面有个dropdownlist,根据dropdownlist的选择在点刷新按钮的时候给gridview绑定相应的数据,gridview的DatasourceId 为objectdatasource。
问题:
在刷新时,objectdatasource多次调用了search(),而且页面也调用了两次page_load。
哪位大侠能告知其中原理,越详细越好。谢了~

解决方案 »

  1.   

    我没有加 AutoEventWireup  这个属性  
      

  2.   

    dropdownlist是否已经和gridview绑定了?
    如果已经绑定了就不用再点刷新按钮了
    因为dropdownlist更新选项时gridview就重新绑定一次了
      

  3.   

    加上 
    if(!IsPostBack)   //首次加载时调用
    { }
      

  4.   

    <asp:DropDownList ID="ddlBrand" runat="server"  DataValueField="value" DataTextField="text" DataSourceID="BrandDataSource">
    </asp:DropDownList> 下拉框用BrandDataSource的objectdatasource绑定值。
     <asp:ImageButton  ID ="brandRefresh" OnClientClick="displayDiv()" OnClick="brandRefresh_Click" runat="server"></asp:ImageButton  > 通过下拉框的SelectedValue值给gridview1绑定数据。 OnClick事件里面为 objectdatasource1.Search()
    <asp:gridview id="gridview1" runat="server" DataKeyNames="SubBrand_id"  DataSourceID="ObjectDataSource1">
    </asp:gridview >
      

  5.   

    DropDownList和GridView连动,你的ImageButton多余!!        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" DataValueField="value" DataTextField="text"  DataSourceID="BrandDataSource"> 
            </asp:DropDownList>
            <asp:ObjectDataSource ID="BrandDataSource" runat="server"
                SelectMethod="你的方法名1" TypeName="你的TypeName">
            </asp:ObjectDataSource>        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
                SelectMethod="你的方法名2" TypeName="你的TypeName">
                <SelectParameters>
                    <asp:ControlParameter ControlID="DropDownList1" Name="value" PropertyName="SelectedValue" Type="Int32" />
                 //这句就是DropDownList选择的Value绑定到GridView
                </SelectParameters>
            </asp:ObjectDataSource>        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1">
                <Columns>
                    .............
                </Columns>
            </asp:GridView>
      

  6.   

    <asp:ControlParameter ControlID="DropDownList1" Name="value" PropertyName="SelectedValue" Type="Int32" /> 其中Type根据实际!!
      

  7.   

    联动是可以,但是我想知道为什么objectdatasource 重复的多次调用objectdatasource1.search()呢?
    能告知原理吗? 3Q