我有两个文本框和两个网格视图。
文本框中填充了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时文本框中的值自动更改时如何实现此目的。
答案 0 :(得分:0)
我将以下内容添加到用于在单击初始gridview时填充文本框的javascript。这会触发文本框文本更改,即文本框自动填充时文本焦点是触发服务器端而无需手动干预,就好像文本已被选中并输入文本而文本框失去焦点一样:
__doPostBack(document.getElementById("<%=tbKS2.ClientID%>").name, '')