请参考:
http://www.dotnetjohn.com/articles/articleid21.aspx

解决方案 »

  1.   

    1.在head间添加javascript,大概如下面:
    <script language="javascript">
    function doSubmit()
    {
    document.getElementById('<%=Button1.ClientID%>').click();
        
    event.cancelBubble = true;
    event.returnValue = false;
    }
    </script>
    作用是用来提交textbox的doubleclick,而实际上是通过客户端而把引发提交的事件转给了一个button控件。
    2.在html代码的textbox属性中手工添加 ondblclick="doSubmit();"
    3.在设置界面中添加一个服务端button控件,就是上面提到的button1,设置其长宽均为1
    并添加它的相应的click事件,就如你所说的显示dropdownlist控件,隐蔽textbox控件。
    4.你所说的dropdowlist所引发的事件,可以先设置其autopostback属性为true,然后在添加相应的selectedindexchanged事件,在里面进行相应处理就可以了。
      

  2.   

    坏了,忘了一个前提,你说的是在datagrid里实现的。改进一下:
    所说的javascript及ondblclick属性设置,可以在itemcreated或其它事件中对
    datagrid每item中的控件进行查找,并添加相应属性
    比如
    Button b1=(Button)e.Item.FindControl("Button1");
    TextBox tb=(TextBox)e.Item.FindControl("TextBox1");
    string jscript="document.getElementById('"+b1.ClientID+"').click();event.cancelBubble = true;event.returnValue = false;";
    tb.Attributes.Add("ondblclick",jscript);
    b1.Click+= new System.EventHandler(this.Button1_Click);
    然后再进行相应的设置就可以了