【问题标题】:Passing textbox text as a stored procedure parameter for output in a gridview将文本框文本作为存储过程参数传递以在网格视图中输出
【发布时间】:2013-05-22 13:18:12
【问题描述】:

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

文本框填充了来自 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 时文本框中的值自动更改时实现此目的。

【问题讨论】:

    标签: vb.net gridview textbox parameter-passing


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2018-11-13
      • 1970-01-01
      相关资源
      最近更新 更多