DataGri中有两个模板列,每个模板列中都有一个TextBox,想实现的是:
在其中一个TextBox的TextChanged事件里,到数据库中取出值,放到另一个TextBox里
一点思路没有,恳请大家指点!!越详细越好(最好是vb.net语法)
谢谢

解决方案 »

  1.   

    TextChanged事件可以得到text1的值吧,然后去查数据库,得到一个新的值,赋值给text2
    text2.Text = "ok"
      

  2.   

    同意 net_lover(孟子E章) ,还有什么问题吗?
      

  3.   

    net_lover(孟子E章)的方法不错啊
      

  4.   

    TextChanged是服务器的啊。要递交到服务器才会生效的啊。
    好象有点难度。总不可能在文本框里一输入,就上传吧。
      

  5.   

    net_lover(孟子E章) 
    孟子大哥说的太简单了!怎么注册TextChanged?
    怎么重新绑定DataGrid啊
    这是在datagrid里啊
    详细点啊,
    谢谢了!!
      

  6.   

    <TextChanged事件可以得到text1的值吧,然后去查数据库,得到一个新的值,赋值给text2
    text2.Text = "ok">这些正常都很好实现,但是现在是在DataGrid里啊 :(
      

  7.   

    你返回植以后在Response.redirect一下
    重新加载页面
    我经常就这样做的,虽然苯,但是还是有用
      

  8.   

    呵呵,你可以参考在DataGrid中双DropDownList控件连动的例子,是一样的
      

  9.   

    在DataGrid绑定的时候,就相应的绑定TextBox的事件,然后通过查询e.Item来处理你想要控制的Text2。
      

  10.   

    greystar(greystar) ( 
    TextChanged是服务器的啊。要递交到服务器才会生效的啊。
    好象有点难度。总不可能在文本框里一输入,就上传吧。
    --------------------------------------------
    TextChanged不是在文本框里一输入就触发,而是
    文本有变化时才触发的事件,这个我已经试过,请大家不必考虑这个问题,而是从实现机制上考虑!包括怎么把datagrid里的TextBox注册上TextChanged事件啊
    谢谢
      

  11.   

    在DataGrid里,
    具体有什么难度?
    不提交,怎么查数据库呢?
    绑定DataGrid应该和你刚开始绑定的方法一样。
    TextChanged的注册。应该在DataGrid_ItemDataBound里做。
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    Control coll;
    if((e.Item.ItemType==ListItemType.Item)||(e.Item.ItemType==ListItemType.AlternatingItem))
    {
    coll =  e.Item.FindControl("TextBox的ID");
    coll.TextChanged = new EventHandler(textbox_TextChanged);
                                }
    }然后你自己写个textbox_TextChanged 方法。
      

  12.   

    可以在datagrid的ItemCreated或ItemCommand事件中注册上TextChanged事件
    通过e.Item.FindControl("TextBoxID")找到TextBox,然后注册
      

  13.   

    你先把TEXTBOX拉到页面上,双击后再拉回去
      

  14.   

    主要是DataGrid里面的TextBox值改变的时候要去触发一个事件对不?能做到这点是不是就ok了。
     ----------Proyang(小过) ( ) 
    他的方法不可以吗?试过没有?还有个办法,在绑定的时候给TextBox添加TextBox.Attribute.Add("onChange","you want");
    然后用脚步去调用服务器端的事件。(这个在微软的asp.net开发技巧里面有的)不知道行不行,关注一下,当帮你顶
      

  15.   

    Proyang(小过) 
    textbox_TextChanged里在怎样写,才能把DataGrid里的另一个TextBox的值赋上呢??!
      

  16.   

    skytear(铁匠) 
    还有个办法,在绑定的时候给TextBox添加TextBox.Attribute.Add("onChange","you want");
    然后用脚步去调用服务器端的事件。(这个在微软的asp.net开发技巧里面有的)不知道行不行,关注一下,当帮你顶-------------------
    谢谢,但不对,还是按的思路走对,感觉
    coll.TextChanged = new EventHandler(textbox_TextChanged);
    这句话用vb.net怎么写啊
      

  17.   

    Proyang(小过)呢?大家快接着这个思路想啊!!还有
    coll.TextChanged = new EventHandler(textbox_TextChanged);
    这句话用vb.net怎么写啊
      

  18.   

    我觉得没必要非写在TextChanged事件里,这是在DataGrid里阿。试试看把TextBox的AutoPostBack设为true,然后处理程序写在DataGrid_ItemCommand事件里。
      

  19.   

    客户要求在TextChanged里写啊!:(
      

  20.   

    TextChanged事件可以得到text1的值吧,然后去查数据库,得到一个新的值,赋值给text2
    text2.Text = "ok"
      

  21.   

    colinliu(流浪人) 兄,
    别灌了好吗:)
    孟子大革的这个法子根本不行啊!俺急啊
    coll.TextChanged = new EventHandler(textbox_TextChanged)
    这句话用vb.net怎么写
      

  22.   

    我的意思是这样实现的话,等同于写在TextChanged事件里。控件放在DataGrid里嘛。
      

  23.   

    我觉得是先把第一个数据存入数据库,然后修改第二个textbox的属性,把它与前个数据库建立关系就行了。
      

  24.   

    真的是不可能完成的任务??
    DataGri中有两个模板列,每个模板列中都有一个TextBox,想实现的是:
    在其中一个TextBox的TextChanged事件里,到数据库中取出值,放到另一个TextBox里
    !!!!!!!!!!!!
      

  25.   

    在显示时都取出text2的内容,放在隐藏控件中,然后在text1的TextChanged事件中通过脚本取出对应的控件数据来.
    ^_^
      

  26.   

    同意 net_lover(孟子E章) ,还有什么问题吗?
      

  27.   

    给个比较简单的办法,做一个自定义控件,就包含2个Txtbox,连动
    然后把它放在模板列里就行了
      

  28.   

    http://community.csdn.net/Expert/topic/3289/3289557.xml?temp=.5554926
    昨天不是已经被goody9807解决了吗?!难道不对吗?!
      

  29.   

    我用TextChanged+=new EventHandler(textbox_TextChanged)在DataGrid里试里一下
    出不来.所以没用TextChanged事件
    <Columns>
       <asp:BoundColumn DataField="ItemId"></asp:BoundColumn>
       <asp:BoundColumn DataField="PublisherId"></asp:BoundColumn>
       <asp:TemplateColumn>
         <ItemTemplate>
    <asp:TextBox Runat="server" ID="Textbox1"></asp:TextBox>
         </ItemTemplate>
       </asp:TemplateColumn>
       <asp:TemplateColumn>
         <ItemTemplate>
             <asp:TextBox Runat="server" ID="Textbox2"></asp:TextBox>
         </ItemTemplate>
       </asp:TemplateColumn>
       <asp:TemplateColumn >
          <ItemTemplate>
    <asp:Button Runat="server" ID="Btn"  Width=0 CommandName="UpdateBtn"></asp:Button>
    </ItemTemplate>
       </asp:TemplateColumn>
    </Columns>
    代码:
    private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
       if(e.CommandName=="UpdateBtn")
       {
    DataGrid dg=source as DataGrid;
    for(int i=0;i<dg.Items.Count;i++)
             {
     TextBox box1=(TextBox)dg.Items[i].Cells[2].FindControl("Textbox1");
               //拿到TextBox1的值
     TextBox box2=(TextBox)dg.Items[i].Cells[3].FindControl("Textbox2");
      box2.Text=??//你从数据库里拿值给TextBox2 }
        }
    }
    实现:在TextBox1输入值,回车后TextBox2出现相关的值
    希望对你有点帮助!
      

  30.   

    同意net_lover(孟子E章)和楼上的