将文本框文本作为存储过程参数传递给gridview中的输出

时间:2013-05-22 13:18:13

标签: vb.net gridview textbox parameter-passing

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

文本框中填充了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>

修改

目前第二个gridview正在更新,但只有当我从其中一个下拉控件中进行选择时才会更新。我需要做的是当文本框中的值更新时,第二个网格将根据页面上的选择进行刷新。

修改

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

1 个答案:

答案 0 :(得分:0)

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

__doPostBack(document.getElementById("<%=tbKS2.ClientID%>").name, '')