我有一个FormView,我试图根据输入到该视图中的一个文本框来触发操作。我的目的是将控制权抛给'protected void ARSControlNumTextBox_TextChanged'部分后面的代码,我想将TextBox的内容填充到标签(CurrentCtrl)中。
我已经设置了一个断点来观察正在发生的事情,因为我没有看到预期的结果。以下是有问题的代码:
protected void ARSControlNumTextBox_TextChanged(object sender, EventArgs e)
{
TextBox thecontrol = (TextBox)ARS30InputFrm.Row.FindControl("ARSControlNum");
if (thecontrol != null)
CurrentCtrl.Text = thecontrol.Text;
}
发生的是跳过值赋值。所以似乎'thecontrol'是空的!这不会增加。
这是Formview的缩写部分,因此您可以看到我从哪里获取我的价值观:
<asp:FormView runat="server" ID="ARS30InputFrm" DataSourceID="ARFS" DefaultMode="Insert">
<InsertItemTemplate>
Control #:
<asp:TextBox Text='<%# Bind("ARSControlNum") %>' runat="server" AutoPostBack="true" OnTextChanged="ARSControlNumTextBox_TextChanged" ID="ARSControlNumTextBox" />
<asp:LinkButton runat="server" Text="Insert" CommandName="Insert" ID="InsertButton" CausesValidation="True" /> <asp:LinkButton runat="server" Text="Cancel" CommandName="Cancel" ID="InsertCancelButton" CausesValidation="False" />
</InsertItemTemplate>
</asp:FormView>
标签是从TextBox传出数据的最终目标:
Current Control Edit: <asp:Label ID="CurrentCtrl" runat="server" ></asp:Label>
我不知道我在这里做错了什么。有人看到了吗?如果是这样的话,我肯定会欣赏目标上的一些目光,因为它让我脱离弯曲的一端! 问候, 肯...
答案 0 :(得分:4)
不应该
protected void ARSControlNumTextBox_TextChanged(object sender, EventArgs e)
{
TextBox thecontrol = (TextBox)ARS30InputFrm.Row.FindControl("ARSControlNumTextBox");
if (thecontrol != null)
CurrentCtrl.Text = thecontrol.Text;
}