RT,我现要做了1个DATAGIRD,其中有一列是模板列,里面放了一个TEXTBOX,然后,我想在这个TEXTBOX中添加双击事件,并且在双击的时候我要知道,双击的那个TEXTBOX的行列号,求各位大大解答一下~

解决方案 »

  1.   

    DataBind的时候将X、Y做为一个特殊属性加到TextBox上
      

  2.   


    <asp:DataGrid runat="server" ID="DataGrid1">
               <Columns>
                   <asp:TemplateColumn>
                       <ItemTemplate>
                           <asp:TextBox ID="TextBox1" ondblclick="javascript:alert(this.parentElement.parentElement.rowIndex)" runat="server"></asp:TextBox>
                       </ItemTemplate>
                   </asp:TemplateColumn>
               </Columns>
           </asp:DataGrid>
      

  3.   

    上面获取的是行号,列号改成ondblclick="javascript:alert(this.parentElement.cellIndex)"
      

  4.   

    谢谢楼上,那我拿到了值之后,我想改变这个TEXTBOX那要怎么做啊?
      

  5.   

    你要改什么?TextBox的Text?脚本完全可以控制
    ondblclick="javascript:this.value=this.parentElement.cellIndex"
      

  6.   

    我想让TextBox双击时打开另外一个页面,然后通另外页面的多种查询后可以得到一个值具体值,然后在新弹出窗口中按确定,之前的那个DATAGRID里面的这个TEXTBOX值就变了啊~ 所以我想是不是要先得到行列号呢?
      

  7.   

    如果你的需求是这样的,那么大可不必如此麻烦,只要把自己的id传过去即可;假设你新打开的页面是b.aspx,源页面是a.aspx;a.aspx
    <asp:DataGrid runat="server" ID="DataGrid1">
               <Columns>
                   <asp:TemplateColumn>
                       <ItemTemplate>
                           <asp:TextBox ID="TextBox1" ondblclick="javascript:window.open('b.aspx?SourceID='+this.id)" runat="server"></asp:TextBox>
                       </ItemTemplate>
                   </asp:TemplateColumn>
               </Columns>
           </asp:DataGrid>
    b.aspx
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <input type="button" onclick="setText()" value="setText" />
        </div>
        </form>
    </body>
    <script type="text/javascript">
    function setText()
    {
       var sid = getParam("SourceID");
       window.opener.document.getElementById(sid).value="this is from Page B";
       window.close();
    }function getParam(paramName){//从URL中获取REQUEST
                 var hrefStr= window.location.href;
                 var pos = hrefStr.indexOf("?");
                 var paramStr = hrefStr.substring(pos,hrefStr.length);
                 var tempStr = paramStr.substring(paramStr.indexOf(paramName),paramStr.length);
                 if(tempStr.indexOf('&')>0)
                 {
                  return tempStr.substring(paramName.length+1,tempStr.indexOf('&')).replace(/\%20/g,' ');
                 }
                 else
                 {
                  return tempStr.substring(paramName.length+1,tempStr.length).replace(/\%20/g,' ');
                 }
            }
    </script>
    </html>
      

  8.   

    谢谢 illusky  大大~ 太COOL了,问题解决
      

  9.   

    用JS的办法?太不合理,还又加了一个处理页面就不适合了,最好直接在服务器代码中直接处理,直接把传递参数sender转成textbox就行了