在模板列里使用DropDownList的事件

     在模板里的DropDownList控件标签内,给控件指派事件OnSelectedIndexChanged=ddlxxx_SelectedIndexChanged.在后台编码使用以下代码获取该DropDownList的控件ID。
private   int  GetIndexFormClientID( Control control )
   {
      
int start = control.NamingContainer.ClientID.IndexOf( "_ctl" );
      start 
+= 4 ;
      
string sIndex = control.NamingContainer.ClientID.Substring( start );
      
int index = int.Parse( sIndex );
      index 
-= 1// zero base

      
return index;
}

      使用代码如下片断:
      webform页面代码片断:
< asp:dropdownlist id = " ddlNameID "  runat = " server "  OnSelectedIndexChanged = " ddlxxx_SelectedIndexChanged "
                    Width
= " 100% "  AutoPostBack = " True " ></ asp:dropdownlist >
      codebehind代码片断:
  protected   void  ddlxxx_SelectedIndexChanged( object  sender, System.EventArgs e)
{
        DropDownList ddlxxx 
= ( DropDownList)sender;

         
int index = this.GetIndexFormClientID( ddlxxx );

        
if( index > -1 )
     
{
             //more code line

            }
        
        }
      如果包含DropDownList控件的控件是DataGrid,那么在GetIndexFormClientID返绘值再减去1,如果是DataList和Repeater就不用。
      此方法在Vs2003下测试通过!vs2005就没测试过了

你可能感兴趣的:(list)