在我的asp.net网络应用程序中,我使用JavaScript获取Texbox
的ID,如下所示
<script language="javascript" type="text/javascript">
function clearTextBox(textBoxID)
{
document.getElementById('<% =RVTable.ClientID %>').value = textBoxID;
alert(textBoxID.toString());
}
我将该ID存储在HiddenField
中 <asp:HiddenField ID="RVTable" runat="server" />
然后我使用codebehind
中的以下代码检索TextBox
的id
TextBox txtbox = (TextBox)FindControl(RVTable.Value.ToString());
if (txtbox != null)
{
if (txtbox.ID.ToString() == RVTable.Value.ToString())
txtbox.Text = (string)CheckBoxString.ToString();
}
供您参考我在内容页面
中完成所有这些工作实际上我的要求是我的项目中有一些CheckBoxes和一些Textbox,还有一个添加按钮。我将检查一些CheckBox,然后单击必须显示所选复选框值的文本框。现在,如果单击“添加”按钮,则选定的CheckBox值将显示在该TextBox中。我将Clicked文本框的ID存储在隐藏的字段中。
这是我的pageLoad代码,将OnClick属性添加到文本框
txtRasi1.Attributes["onclick"] = "clearTextBox(this.id)";
txtRasi2.Attributes["onclick"] = "clearTextBox(this.id)";
txtRasi3.Attributes["onclick"] = "clearTextBox(this.id)";
txtRasi4.Attributes["onclick"] = "clearTextBox(this.id)";
txtRasi5.Attributes["onclick"] = "clearTextBox(this.id)";
txtRasi6.Attributes["onclick"] = "clearTextBox(this.id)";
txtRasi7.Attributes["onclick"] = "clearTextBox(this.id)";
txtRasi8.Attributes["onclick"] = "clearTextBox(this.id)";
txtRasi9.Attributes["onclick"] = "clearTextBox(this.id)";
txtRasi10.Attributes["onclick"] = "clearTextBox(this.id)";
txtRasi11.Attributes["onclick"] = "clearTextBox(this.id)";
txtRasi12.Attributes["onclick"] = "clearTextBox(this.id)";
我已经通过在一个简单的asp.net Web应用程序中使用上述代码来实现解决方案(当不使用MasterPage时)。
但是当我尝试在内容页面中使用相同的代码时,单击的TextBox的ID就像ctl00_ChildPageContents_txtRasi3
而不是txtRasi3
,这是TextBox的原始ID。
正如我在上面的代码隐藏代码中提到的,FindControl()
找不到点击的文本框,因为它获得了不同的ID ctl00_ChildPageContents_txtRasi3
。如何获取原始ID txtRasi3
?
我还发现了另外一个问题......
即使我直接在FindControl()
方法中提到了我的TexBox控件ID,仍然是txtbox对象为空。
答案 0 :(得分:1)
将文本框客户端ID模式设置为静态......
<asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static"></asp:TextBox>