擷取由ASP.NET產生的伺服器控制項標識符

來源:互聯網
上載者:User

 
1
        private void Focus(string sDomID)
        {
            RegScript("focus", "document.getElementById(\"" + sDomID + "\").focus();");
        }

2
        public void Select(TextBox txtBox)
        {
            string sScript = "var dom=document.getElementById(\"" + txtBox.ClientID + "\");if(dom){dom.select();}\n";
            RegScript("Select", sScript);
        }

註:

(1) 當使用母板(.MASTER)和使用者控制項(.ASCX)的時候,使用者控制項的頁面JavaScript中需要使用Asp.net的控制項ID,主版頁面的子頁面JavaScript中需要使用Asp.net的控制項ID

(2)\" 的意思是:因為寫在背景.js檔案中,C#把 " 認識成標誌其為字串的一種方式,但是到JavaScript前台的時候將這個 " 給丟掉了,加一個 \ 逸出字元,告訴C#編輯器,這個就是單單的 " ,這樣到JavaScript前台中,就會被翻譯成 " ,不會丟失了。

3

擷取由 ASP.NET 產生的伺服器控制項標識符。

問題一: 使用者控制項的頁面JavaScript中需要使用Asp.net的控制項ID,出現不一致。
問題二:主版頁面的子頁面JavaScript中需要使用Asp.net的控制項ID,出現不一致。
解決辦法:
      document.getElementById("<%=TextBox1.ClientID%>").value="1234567";

此代碼可以在用戶端完成對伺服器端控制項的訪問,由於ASP.NET會為把伺服器端控制項在用戶端的呈現產生不同的名稱,所以此功能比較有用擷取。

注意採用此解決辦法的前提: Asp.net的控制項為靜態控制項(通過工具添加的控制項)

問題三: 動態建立控制項的ClientID的獲得存在:不能在頁面中採用"<%=TextBox1.ClientID%>".方法獲得(不能的方法,因為控制項是動態建立的);也不能在頁面指令碼中採用TextBox1.ClientID的方法獲得(獲得的ID是不正確的)。
解決辦法:
(CitySpecProductScheduledControl.ascx.cs程式碼片段 )
           TextBox text = new TextBox();
            text.MaxLength = 12;
            text.Columns = 12;
            text.Text = DateTime.Now.ToShortDateString();
            text.ID = "dateId";
            text.Attributes.Add("onclick", "calendar()");
            text.Attributes.Add("class", "text");

            HtmlImage dateimg = new HtmlImage();
            dateimg.Src = "../CommonImages/cal.gif";
            string js = string.Format("calendar({0}_{1})",this.ClientID, text.ClientID); //關鍵代碼,按照用戶端ClientID的產生規則手工產生。
            dateimg.Attributes.Add("onclick", js);

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/heling0223/archive/2009/11/04/4765598.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.