ext.net gridpanel 事件

1、行双击事件

首先设置选择方式为RowSelectionModel单行选中

 
      
      
 

 

1.1   注册行双击事件,响应代码写在前台js中

  
         
  

前台js代码:

 


 1.2 注册行双击事件,响应代码写在后台cs文件中

 
              

后台代码:

protected void OnRow_DblClick(object sender, DirectEventArgs e)

{

this.Window1.Title = "未发日期明细表";

this.Window1.Show();

}

 1.3 定义带参数的行双击事件

       注册事件

 
     
        
             
              
              
              <%--   --%>
               
                            
     
 

 

后台代码:

 protected void Row_DblClick(object sender, DirectEventArgs e)  //
 {
            string json = e.ExtraParams["Values"];
            string Key;
            Dictionary[] dic = JSON.Deserialize[]>(json);
            if (dic.Length > 0)   //选择当行时,获取选择行的数据
            {
                string ID1 = dic[0]["员工编号"].ToString();
                string Name1 = dic[0]["姓名"].ToString();
                string Out = dic[0]["出差总天数"].ToString();
                string Out2 = dic[0]["出差地点总数"].ToString();
            }
            else  //选择多行时,获取选择行的数据
            {
                foreach (Dictionary row in dic)
                {
                    foreach (KeyValuePair keyValuePair in row)
                    {
                        Key = keyValuePair.Key;
                        if (Key == "员工编号")
                        {
                            string ID = keyValuePair.Value;
                            continue;
                        }
                        else if (Key == "姓名")
                        {
                            string Name = keyValuePair.Value;
                            continue;
                        }
                    }
                }
            }
 }

 2、单元格命令事件,cell command(ImageCommand),自定义事件参数

在列中定义ImageCommand

 
     
           
               
           
     

2.1  定自定事件及事件参数,后台响应事件

 
     
         
         
         
         
         
         
         
                                           
       
 

 定义后台响应代码:

protected void OnCell_Click(object sender, DirectEventArgs e)
{
            string m_No = e.ExtraParams["ID"].ToString();
            string paraName = e.ExtraParams["Name"].ToString();
            string paraColName = e.ExtraParams["colName"].ToString();    
            if(paraColName == "未发次数")
            {
                    this.Window1.Title = "[" + paraName + "] 未发日期明细表";
                    InfoBindNoSendDay();
                    this.Window1.Show();
            }
            else  if(paraColName == "迟发次数")
            {
                   this.Window2.Title = "[" + paraName + "] 迟发日期明细表";
                   InfoBindDelaySendDay();
                   this.Window2.Show();
            }
                       
}

 

2.2  定义事件,前台js响应事件


     

js代码


 

 3、单元格选中事件 定义行选中模式为单元格选中模式,

定义选中事件


     
         
                                 
         
     

 

定义事件响应代码(可写在后台,也可以写在js中,注意要有runat="server"):



 

 4、前台js事件与后台事件的执行顺序

       在两种事件都定义的时候,默认情况下是先执行js事件,然后执行后台事件

例如:


     
            
     
                                             
       
             
     


默认先执行js代码

 


后执行cs代码:

 protected void btn_Click(object sender, DirectEventArgs e)
 {
           ComboBox1.Text = string.Format("{0:yyyy年M月}", Convert.ToDateTime(ComboBox1.Text.ToString()).AddMonths(-1));
 }

 

 如果要先执行后台代码后执行js代码,则定义事件时加一个参数delay="50"   ,设置滞后时间

 
      
          
      
                                             
        
         
      


 

 

.

你可能感兴趣的:(ext.net gridpanel 事件)