如何使用JavaScript函数获取内容页面控件的原始ID?

时间:2013-04-06 13:04:39

标签: javascript asp.net master-pages

在我的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

我还发现了另外一个问题...... enter image description here

即使我直接在FindControl()方法中提到了我的TexBox控件ID,仍然是txtbox对象为空。

1 个答案:

答案 0 :(得分:1)

将文本框客户端ID模式设置为静态......

 <asp:TextBox ID="TextBox1" runat="server" ClientIDMode="Static"></asp:TextBox>