0

そのため、複数の制御パラメーターを持つ sqldatasource を使用して、asp.net で検索を行ってきました。1 つのコントロールが入力されていて、もう 1 つのコントロールが入力されていない場合に、テーブルを検索可能にするために少し調べました (1 つを空白のままにすると、何も表示されません)。私が今抱えている唯一の問題は、ページが開くとデータベース全体がグリッドビューに表示されることです。多分私はこれについて間違っているかもしれませんが、私の最終的な意図は、データベースを検索するための 8 つのテキスト ボックスを含む検索ページを作成することです。どんな助けでも大歓迎です。必要な情報がこれですべてかどうかわかりませんが、お知らせください。ありがとうございます。

<asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:Conn %>" CancelSelectOnNullParameter="false"
    SelectCommand="SELECT [ID], [ContractNo], [OMBEmp], [Cono], [ReviewDate], [AmendNo], [RType], [Contractor], [Purpose], [Department] FROM [tblContractLog] WHERE (([ContractNo] = @ContractNo OR @ContractNo = '') AND ([OMBEmp] = @OMBEmp OR @OMBEmp = '') AND ([Cono] = @Cono OR @Cono = '') AND ([AmendNo] = @AmendNo OR @AmendNo = '') AND ([RType] = @RType OR @RType = '') AND ([Contractor] = @Contractor OR @Contractor = '') AND ([Purpose] = @Purpose OR @Purpose = '') AND ([Department] = @Department OR @Department = ''))">
        <SelectParameters>
            <asp:ControlParameter ControlID="contractnumb" Name="ContractNo" 
                PropertyName="Text" Type="String" ConvertEmptyStringToNull="false"/>
            <asp:ControlParameter ControlID="employeetext" Name="OMBEmp" 
                PropertyName="Text" Type="String" ConvertEmptyStringToNull="false"/>
            <asp:ControlParameter ControlID="conumb" Name="Cono" 
                PropertyName="Text" Type="String" ConvertEmptyStringToNull="false"/>
                <asp:ControlParameter ControlID="amendnumbtxt" Name="AmendNo" 
                PropertyName="Text" Type="String" ConvertEmptyStringToNull="false"/>
            <asp:ControlParameter ControlID="rtypetxt" Name="RType" 
                PropertyName="Text" Type="String" ConvertEmptyStringToNull="false"/>
            <asp:ControlParameter ControlID="contractortxt" Name="Contractor" 
                PropertyName="Text" Type="String" ConvertEmptyStringToNull="false"/>
            <asp:ControlParameter ControlID="purposetxt" Name="Purpose" 
                PropertyName="Text" Type="String" ConvertEmptyStringToNull="false"/>
            <asp:ControlParameter ControlID="departmenttxt" Name="Department" 
                PropertyName="Text" Type="String" ConvertEmptyStringToNull="false"/>
        </SelectParameters>
    </asp:SqlDataSource>
4

2 に答える 2

1

Selectingイベントを利用し、検索していないときにキャンセルすることで、sqldatasource がいつ読み込まれるかを制御できます。このコードでブロックできます(ここから取得):

protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e)
{
    if (!IsPostBack)
        e.Cancel = true;
}

次に、検索パラメーターが確立された後、グリッドで databind を呼び出します。

于 2013-04-16T13:40:16.763 に答える
0

オンGridViewデマンド (ボタン クリック時) に入力するには、DataSourceID をページではなくコードで設定するASPXか、ページの読み込みではなくボタン クリックでバインドします。

于 2013-04-16T13:38:38.460 に答える