DataGrid中添加单击或者双击事件

在网上找到过一些对于DataGrid控件的双击事件的方法,有些是需要刷新页面的,有些则太过于复杂,东搞西搞一头雾水.难啦!还是自己动手做啦,根据需求,需将DataGrid双击后将双击的行内的内容提取出来写入对于的TEXTBOX框内,当然前提是不能刷新页面,因为刷新时又跳出开头了.参考了一下网上大虾的公布的东东,自己修改了一下,现公布出来给大家,资源共享啦:)

首先,在DataGrid的ItemDataBound事件里对每个项添加客户端双击事件:

 

 e.Item.Attributes.Add( " ondblclick " " javascript:datagrid1_dbclick(' "   +  e.Item.Cells[ 1 ].Text.Trim()  +   " ',' " +  e.Item.Cells[ 2 ].Text.Trim()  + " ',' " +  e.Item.Cells[ 3 ].Text.Trim()  + " ',' " + e.Item.Cells[ 4 ].Text.Trim() + " ') " );

   

后面的参数为DataGrid行内的各项内容;

如下:

 

  private   void  DataGrid1_ItemDataBound( object  sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
  {
      e.Item.Cells[
5 ].Attributes.Add( " onclick " , " return confirm('确定删除记录?'); " ); 
   
if (e.Item.ItemType  ==  ListItemType.AlternatingItem  ||  e.Item.ItemType  ==  ListItemType.Item ) 
   { 
    e.Item.Attributes.Add(
" onmouseover " " this.oldcolor=this.style.backgroundColor;this.style.backgroundColor='#FFFF00' " ); 
    e.Item.Attributes.Add(
" onmouseout " " this.style.backgroundColor=this.oldcolor " ); 
    e.Item.Attributes.Add(
" ondblclick " " javascript:datagrid1_dbclick(' "   +  e.Item.Cells[ 1 ].Text.Trim()  +   " ',' " +  e.Item.Cells[ 2 ].Text.Trim()  + " ',' " +  e.Item.Cells[ 3 ].Text.Trim()  + " ',' " + e.Item.Cells[ 4 ].Text.Trim() + " ') " );
   } 
  }

 

 完成以上后,则将DataGrid的双击事件定义了,然后再加上客户端脚本程序段,让双击事件的函数能够用起来:

 

  function  datagrid1_dbclick(PoliceID,PoliceName,PoliceMobie,Memo)

{ window.document.forms[
0 ].tblPoliceID.value = PoliceID;

 window.document.forms[
0 ].Police1.value  =  PoliceID;

 window.document.forms[
0 ].tblPoliceName.value = PoliceName;

 window.document.forms[
0 ].tblPoliceMobie.value = PoliceMobie;

 
if (Memo != "   "

window.document.forms[
0 ].tblMemo.value = Memo; 

else  window.document.forms[ 0 ].tblMemo.value = "" ;

 }

 

以上是客户端脚本程序,将DataGrid传过来的参数,分别赋值给界面上的四个TXETBOX对像,这样就不用运行

服务端程序,也就没有刷新页面的烦恼了,呵呵,是不是很简单?希望能给你带来帮助.

 

你可能感兴趣的:(.NET)