加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – ASP.Net:ClientID在用户控件的代码隐藏中不正确

发布时间:2020-12-15 08:18:08 所属栏目:百科 来源:网络整理
导读:以下代码不起作用.标记位于用户控件中,我想这就是ClientID为TextBox id返回错误前缀的原因. 标记: INPUT id="txtName" runat="server" maxlength="50" style="WIDTH:100px"INPUT type="button" value="Find Your Doctor" id="btnFind" runat="server" style
以下代码不起作用.标记位于用户控件中,我想这就是ClientID为TextBox id返回错误前缀的原因.

标记:

<INPUT id="txtName" runat="server" maxlength="50" style="WIDTH:100px">
<INPUT type="button" value="Find Your Doctor" id="btnFind" runat="server"
      style="MARGIN-LEFT:10px;WIDTH:130px">

代码隐藏:

btnFind.Attributes.Add("onClick",string.Format("DoctorLink
        ('{0}',document.getElementById('{1}').value,{2});",row["ZipCode"],txtName.ClientID));

浏览器结果:

<input name="DoctorsMainArea1$ctl01$txtName" type="text"
   id="DoctorsMainArea1_ctl01_txtName" maxlength="50" style="WIDTH:100px" />

<input name="DoctorsMainArea1$ctl01$btnFind" type="button" 
   id="DoctorsMainArea1_ctl01_btnFind" value="Find Your Doctor" style="MARGIN-
   LEFT:10px;WIDTH:130px" onClick="PrepareDoctorLink('90210',document.getElementById('DoctorsMainArea1_ctl00_txtName').value);" />

如您所见,JavaScript调用的参数是DoctorsMainArea1_ctl00_txtName,但输入元素的实际ID是DoctorsMainArea1_ctl01_txtName.

知道如何解决这个问题吗? jQuery的?我对解释正在发生的事情并不感兴趣(可能在此页面上有另一个控件干扰),但是解决问题的方法更为强大.

解决方法

您应该尝试将添加onclick属性的代码移动到页面或用户控件中PreRender事件(或OnPreRender覆盖)中的按钮.这应该可以使ClientID正确.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读