datagrid中(的一行)有一个dropdownlist和一个textbox,现在要在dropdownlist改变的时候修改textbox的值,并且是在客户端处理。这个应该怎么处理???

解决方案 »

  1.   

    <select onchange="textboxName.value='okk'"
      

  2.   

    比如
    <asp:DropDownList ID="dep" Runat="server"></asp:DropDownList>
    <asp:TextBox ID="txt" Runat="server"></asp:TextBox>
    在ItemDataBound事件中这么写
    ((DropDownList)e.Item.FindControl("dep")).Attributes.Add("onchange","document.getElementById('"+((TextBox)e.Item.FindControl("txt")).UniqueID+"').value=this.value");
      

  3.   

    net_lover(孟子E章)  谢谢
    现在因为textbox和dripdownlist的客户端id是由系统自动生成的,不知道怎么获取。
    那两个控件都用的服务器端控件
      

  4.   

    我也遇到过这种情况,好像在DataGrid中的TextBox控件即使修改了id后,asp.net 还会在他的前面加上一些东西,所有没有办法在js中将控件名称写死.可是可以在程序中用ClientID来获得
    TextBox TxtDanWei=(TextBox )this.MyDataGrid.Items[index].Cells[4].FindControl("TxtDanWei");  //单位
    string danwei=TxtDanWei.ClientID;//就是在客户端的名称
    然后用
    将相关的js语句在服务器端生成在用
    RegisterStartupScript("script_bianhao",script.ToString() )  ;
    将生成的js发送到客户端就可以了!
    因为每一个TextBox在不同的行中的名称是不一样的,所以就只有这样动态生成js语句.不知道有没有更好的办法,这种方法比较的麻烦,而且很容易出错!
      

  5.   

    现在因为textbox和dripdownlist的客户端id是由系统自动生成的,不知道怎么获取。
    ------------------------
    你楼上LoveCherry(论成败,人生豪迈;大不了,重头再来!^_^) 的程序即可.如有其他脚本操作,你可:
    ((DropDownList)e.Item.FindControl("下拉框ID")).Attributes.Add("onchange","down_change('" + ((TextBox)e.Item.FindControl("文本框ID")).ClientID + "',this)");
    这样即可求取到文本框的客户端ID,也可得到下拉框对象(this)
      

  6.   

    谢谢各位的提示,已经解决了
    相关脚本代码:
    <script language=javascript>
    function inspectdlchange(DropDownListID,TextBoxID)
    {
    .......
    }
    </script>
    相关后台代码:
    myDropDownList.Attributes.Add("onchange","inspectdlchange(\""+myDropDownList.UniqueID+"\",\""+myTextBox.UniqueID+"\")");