0

2 つのテキスト ボックスと 2 つのグリッドビューがあります。

テキストボックスには、最初のグリッドビューでクリックされたセルに応じて変化する JavaScript 変数からの座標が入力されます。これはうまくいきます:

    <asp:TextBox ID="tbGrade" runat="server" CssClass="hideOnprint" AutoPostBack="True"></asp:TextBox>
    <asp:TextBox ID="tbKS2" runat="server" CssClass="hideOnprint" AutoPostBack="True"></asp:TextBox>

グリッドビューのセルをクリックしてテキストボックスに値が入力されたら、つまり変更されたら、2つのテキスト値をストアドプロシージャに渡したいと思います。

このストアド プロシージャは、結果を 2 番目のグリッドビューに出力します。ストアド プロシージャはダミー値でテストすると正しく動作しますが、2 つのテキスト ボックス パラメータがテキスト ボックスから入力されないため、2 番目のグリッドビューが表示されません。

したがって、入力は正常に機能しており、出力も正常に機能していますが、2つを接続することはできません。

これは、グリッドビューとパラメーターの asp です。ドロップダウン テキスト パラメータは正常に機能します。

    <asp:GridView ID="gvProgressCohorts" runat="server" AutoGenerateColumns="False" DataSourceID="dsProgressCohorts">
        <Columns>
            <asp:BoundField DataField="Column1" HeaderText="Column1" ReadOnly="True" SortExpression="Column1" />
        </Columns>
    </asp:GridView>
    <asp:SqlDataSource ID="dsProgressCohorts" runat="server" ConnectionString="<%$ ConnectionStrings:MaltingsConnectionString %>" SelectCommand="spProgressCohorts" SelectCommandType="StoredProcedure">
        <SelectParameters>
            <asp:ControlParameter ControlID="DdlYear" Name="StuYear" PropertyName="SelectedValue" Type="String" />
            <asp:ControlParameter ControlID="ddlDataCollection" Name="DataCollection" PropertyName="SelectedValue" Type="String" />
            <asp:ControlParameter ControlID="DdlSubject" Name="SubjectName" PropertyName="SelectedValue" Type="String" />
            <asp:ControlParameter ControlID="DdlTeachingGroup" Name="TeachingGroup" PropertyName="SelectedValue" Type="String" />
            <asp:ControlParameter ControlID="ddlSubgroup" Name="Subgroup" PropertyName="SelectedValue" Type="String" />
            <asp:ControlParameter ControlID="tbGrade" DefaultValue="" Name="Result" PropertyName="Text" Type="String" />
            <asp:ControlParameter ControlID="tbKS2" DefaultValue="" Name="KS2" PropertyName="Text" Type="String" />
        </SelectParameters>
    </asp:SqlDataSource>

編集:

現状では、2 番目のグリッドビューは正しく更新されていますが、ドロップダウン コントロールの 1 つから選択した場合のみです。私が起こる必要があるのは、テキストボックスの値が更新されたときに、ページで行われた選択に基づいて 2 番目のグリッドが更新されることです。

編集:

テキスト ボックスの 1 つに textchange イベントを追加しました。このイベントは、テキスト ボックスの値を手動で変更し、テキスト ボックスから離れたときに 2 番目のグリッドビューを更新します。最初のグリッドビューをクリックしたときにテキストボックスの値が自動的に変化するときに、これを達成する方法を知る必要があります。

4

1 に答える 1

0

最初のグリッドビューがクリックされたときにテキストボックスにデータを入力するために使用される JavaScript に以下を追加しました。これにより、テキストボックスのテキストが変更されます。つまり、テキストボックスが自動的に入力されると、テキストが選択され、テキストが入力され、テキストボックスがフォーカスを失ったかのように、手動で介入することなく、テキストフォーカスがサーバー側でトリガーされます。

__doPostBack(document.getElementById("<%=tbKS2.ClientID%>").name, '')  
于 2013-06-07T11:13:43.790 に答える