0

我有两个文本框和两个网格视图。

文本框填充了来自 javascript 变量的坐标,这些坐标根据在第一个 gridview 中单击的单元格而变化。这工作正常:

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

一旦通过gridview单元格单击填充了文本框,即一旦它们更改,我想将这两个文本值传递给存储过程。

然后,此存储过程将结果输出到第二个 gridview。当我使用虚拟值对其进行测试时,存储过程可以正常工作,但是两个文本框参数不会从文本框中填充,因此第二个 gridview 没有显示。

所以输入工作正常,输出工作正常,但是将两者连接在一起让我望而却步。

这是gridview和参数的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>

编辑:

就目前而言,第二个网格视图正在正确更新,但只有当我从我的一个下拉控件中进行选择时。我需要发生的是,当文本框中的值更新时,第二个网格会根据页面上的选择进行刷新。

编辑:

我在其中一个文本框中添加了一个 textchange 事件,当我手动更改文本框中的值然后将注意力从文本框移开时,它会更新第二个 gridview。我只需要知道如何在单击第一个 gridview 时文本框中的值自动更改时实现此目的。

4

1 回答 1

0

我在单击初始网格视图时将以下内容添加到用于填充文本框的 javascript 中。这会触发文本框文本更改,即当文本框自动填充时,文本焦点在服务器端触发,无需手动干预,就好像文本已被选中并输入文本,然后文本框失去焦点:

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