首先这个label是datagrid中的一个摸板列,还有一个摸板列是textbox,我想在textbox失去焦点的时候给label赋值,在客户端显示,提交的时候在服务器端取值。function total(obj)
{
if(obj.value=="")
return;
var obj3;
obj3 = obj.parentNode.nextSibling.children(0);
obj3.innerText = obj.value;
}这是在csdn上找的代码,当文本框失去焦点的时候触发在服务器端取不到label的值当我的点提交的时候obj3的值都被清空了我现在只想知道用label怎么样的赋值和取值?可能我上面的代码写的不对,希望大家写点代码,给小弟点提示

解决方案 »

  1.   

    你是不是分多呀,又发了一个呀
    http://community.csdn.net/Expert/TopicView.asp?id=3332461
      

  2.   

    钢材告诉你的方法不行吗??
    你就是不肯换TEXTBOX,那就加一个隐藏控件 呀
      

  3.   

    用textbox更好一点,另外DataGrid里的控件到客户端的时候ID就自动变了,可以用ClientID在服务器端得到控件客户端ID。
      

  4.   

    模版列:
    .....
    <asp:Label id="Label1" >
    .....
    <asp:TextBox id="TextBox1" onblur="setLabel(this);"......>脚本:
    function setLabel(objTxt)
    {
      var name = objTxt.id;
      name=name.replace("TextBox1","Label1");
      document.all[name].innerText = "哈哈,成功了";
    }label使用服务器端的label,否则刷新就没了
    后台提交
    Label tmp=(Label)DataGrid.Items[DataGrid.SelectIndex].FincControl("Label1");
    string str = tmp.Text;//取label的值
      

  5.   

    回复人: Eddie005(暴走005) ( ) 信誉:100  2004-09-02 16:58:00  得分: 0  
     
     
       分恐怕大部分都是我的了~~~   ^o^
      
     你试了没有呀
    就算你用WEB控件,也没用,后台取不到,页面一刷新就没有了
      

  6.   

    to   回复人: Eddie005(暴走005) ( ) 信誉:100 你在页面中加一个服务器端button,然后再在后台取label的值,看是多少我取出来的是空,而且,当点击button时候,页面上的“哈哈,成功了”没有了
      

  7.   

    你看看生成的最终的html页面源码中的lable是解析成什么html标记的,然后应该是和操作html的控件一样
      

  8.   

    解析成<span></span>了,该怎么操作,请楼上的指教
      

  9.   

    DataGrid 中控制lable 或textbox 比较麻烦!
    我也希望能实现!
    学习一下!
      

  10.   

    Label→span
    document.all.lbl1.innerText="xxx";obj3 = obj.parentNode.nextSibling.children(0);??????
    应该是obj3 = obj.parentNode.nextSibling;这样才对吧?
    如果你赋值后,在服务器端取不到值的话,说明LABEL没有保存ViewState这个状态,也没有办法了.
      

  11.   

    to  回复人: shenghuayi(oldman) ( ) 信誉:100 怎么样才能让他保存那个状态呢
    obj3 = obj.parentNode.nextSibling.children(0);??????
    应该是obj3 = obj.parentNode.nextSibling;这样才对吧?这两个应该都可以的