服务器控件中使用<%#...>, JS和html控件中使用<%=...>
//在服务器控件的属性中,需要用<%#...>来绑定其他控件的ID, 并且要在页面初始方法中,执行Page.DataBind();
<asp:ImageButton ID="imgBtnLogin" ImageUrl="~/App_Themes/DefaultTheme/Images/login_10.png" runat="server" BorderStyle="None" OnClientClick='<%#"pwdMd5("+this.txtUserPwd.ClientID+")"%>' Style="z-index: 1; width: 80px; height: 34px; cursor: pointer;" OnClick="imgBtnLogin_Click" />
//在Js脚本和HTML控件中, 可以直接使用<%=...>
function pwdMd5(elem) { //alert(elem); alert('<%= this.txtUserPwd.ClientID %>'); }
//重写GridView控件时, TemplateFiled字段的问题.
在GridView的TemplateFiled字段中, 如果使用客户端的HTML控件而非runat服务器控件, 后台OnPreRender的方法, 无法获取控件的内容.
尝试很久后, 解决方案为, new一个LiteralControl的控件, 然后AddAt(0,lc)到第一个位置, 这样无论是服务器控件、还是客户端控件均可以使用.