一般js中可以通过document.getElementById("id")的方法来获取控件的控制,但如果某控件的属性里runat=“server”时就无法通过该方法获得了,而我们又需要控件“跑在客户端”以便后台代码进行控制。此时只需如此:
以点击Button触发Textbox和Dropdownlist联动为例
后台代码:
protected
void
Page_Load(
object
sender, EventArgs e)
{
if ( ! IsPostBack)
{
Btn.Attributes.Add( " OnClick " , " return _select( " + this .DDL.UniqueID + " , " + this .TxtBox.UniqueID + " ); " );
}
}
{
if ( ! IsPostBack)
{
Btn.Attributes.Add( " OnClick " , " return _select( " + this .DDL.UniqueID + " , " + this .TxtBox.UniqueID + " ); " );
}
}
前台代码:
function
_select(ddl,txt)
{
var objddl = ddl;
var objTxt = txt;
objTxt.value = objTxt.value + objddl.options[objddl.selectedIndex].text;
return false ;
}
{
var objddl = ddl;
var objTxt = txt;
objTxt.value = objTxt.value + objddl.options[objddl.selectedIndex].text;
return false ;
}
但后台再取txtbox的text时可能取不到更新后的值,这时不能直接取TxtBox.Text。而是:
Request.Form[TxtBox.UniqueID]