首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

双击Gridview时为编辑状态,该如何解决

2012-09-14 
双击Gridview时为编辑状态就是当我双击gridview的某一单元格时,该单元格就为编辑状态????哪位仁兄帮帮忙呀

双击Gridview时为编辑状态
就是当我双击gridview的某一单元格时,该单元格就为编辑状态????哪位仁兄帮帮忙呀,急!急!急!

[解决办法]
js 单点击了以后,就把它启用, 可以编辑
[解决办法]

HTML code
<%@ Page Language="C#" debug="true"%><%@ Import Namespace="System.Data" %><script runat="server">        protected void Page_Load(object sender, EventArgs e)        {            bool isAJAXPost = IsAJAXPost();            if (isAJAXPost)//是            {                Response.Write("AJAX PostBack Data\nName:" + Request.Form["name"]                    + "\nNumber:" + Request.Form["number"]                    + "\nServerTime:" + DateTime.Now.ToString());//提供给ajax对象使用的信息                Response.End();//结束下面程序的执行            }                     if (!IsPostBack)            {                GridView1.DataSource = BuildGridViewDataSource();                GridView1.DataBind();            }        }    /// <summary>    /// 是否是ajaxpost回来的数据,并根据数据更新表什么的    /// </summary>    /// <returns>是否是ajax提交的数据</returns>        private bool IsAJAXPost()        {            string Up = Request.Form["up"];            if (Up == "up")//此参数执行是否是ajax post回来的            {                string Name = Request.Form["name"];                string Number = Request.Form["Number"];                //下面可以执行你的更新操作什么的                //======                //======                return true;//返回             }            return false;        }        /// <summary>        /// 用来做例子中的数据源        /// </summary>        /// <returns></returns>        private DataTable BuildGridViewDataSource()        {            DataTable dt = new DataTable();            dt.Columns.Add("Number");            dt.Columns.Add("Name");            DataRow dr = dt.NewRow();            dr["Number"] = "1000";            dr["Name"] = "张三";            dt.Rows.Add(dr);            dr = dt.NewRow();            dr["Number"] = "1001";            dr["Name"] = "李四";            dt.Rows.Add(dr);            return dt;        }        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)        {            if (e.Row.RowType == DataControlRowType.DataRow)            {                //实现单击时确发编辑                //e.Row.Attributes.Add("onclick", "OnClickedRow('" + e.Row.RowIndex + "');");                //实现双击时确发编辑                e.Row.Attributes.Add("ondblclick", "OnClickedRow(this);");            }        }  </script><html>  <head></head>  <body>  <form runat="server">  <asp:GridView Width="500" ID="GridView1" runat="server" AutoGenerateColumns="False"                OnRowDataBound="GridView1_RowDataBound">                <Columns>                    <asp:BoundField DataField="Number" HeaderText="编号" />                    <asp:BoundField DataField="Name" HeaderText="姓名" />                </Columns>            </asp:GridView>  </form>  <script type="text/javascript">  var FocusTR=null; function createObj(){  var o=null;  if(typeof(XMLHttpRequest)!="undefined") return new XMLHttpRequest();//ie7和w3c  if(window.ActiveXObject)//ie6-  {    var MSXML=["MSXML2.XMLHttp.5.0","MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp","Microsoft.XMLHTTP"];    for(var i=0;i<MSXML.length;i++)    {       try       {         o= new ActiveXObject(MSXML[i]);         return o;       }       catch(e)       {}    }  }}function OnClickedRow(tr){   if(FocusTR==tr)return;//已经获取编辑状态后再双击退出   if(FocusTR!=null)//ajax提交上次编辑行的数据   {      var txt1=FocusTR.cells[0].getElementsByTagName("input")[0].value;      var txt2=FocusTR.cells[1].getElementsByTagName("input")[0].value;            var data="up=up&name="+escape(txt1)+"&number="+escape(txt2);      PostData(data);//启动ajax对象来post数据回服务器提供更新      //=========还原状态      FocusTR.cells[0].innerHTML=txt1;      FocusTR.cells[1].innerHTML=txt2;   }   var c1=tr.cells[0].innerHTML;   var c2=tr.cells[1].innerHTML;   //更换为text   tr.cells[0].innerHTML="<input type='text' value='"+c1+"'/>";   tr.cells[1].innerHTML="<input type='text' value='"+c2+"'/>";   FocusTR=tr;//更改行}function PostData(data){  var o=createObj();  if(o)  {    o.onreadystatechange=function()    {      if(o.readyState==4)//已经返回      {         if(o.status==200)//成功返回           alert(o.responseText);         else           alert("发生错误!");      }    }    //aspx文件名改后注意修改这个    o.open("post","test.aspx",true);    o.setRequestHeader("content-type","application/x-www-form-urlencoded");//post时需要设置此头    o.send(data);//发送请求和数据  }  else    alert("创建对象失败!");}  </script>  </body></html> 

热点排行