我在button1的单击事件里用CreateBoundColumn()和CreateTemplateColumn()分别在datagrid中根据需要创建了一些列,其中,生成的模版列里是一个textbox控件,用来给用户提供输入。
可是现在发现,点击另一个按钮提交的时候(这个在button2的单击事件里)根本无法取到任何一列上的值。我用datagrid.columns.count查看,发现值为0!说明这些动态的列根本无法识别。
但是我在button1的事件里观察datagrid.columns.count就是正常的。
真是受不了了!
而且在LoadViewState再次创建动态列的方法我也试过了,这个只能保证页面刷新的时候,动态列正常显示,可是模版列里用户输入的值是不能保存下来的。
大牛们帮帮小女子吧,快疯掉了,老板天天催,555555。
最好给出详细的过程,太抽象的东西我看不懂

解决方案 »

  1.   

             Dim mycontrol1 As TextBox
               Dim la1 As Label
    For Each item In DataGrid1.Items
    mycontrol1 = item.FindControl("数量")
                               la1=item.FindControl("名称")
                      next item
    '模板列中textbox的id是"数量",lable的ID是"名称"
    写得清楚吗?希望不是会错意
      

  2.   

    你需要在LoadViewState里重新生成这些列,参考DataGrid Web 伺服器控制項的常見問題
    http://www.microsoft.com/taiwan/msdn/library/2002/Feb-2002/whitepaper/vbtchtopquestionsaboutaspnetdatagridservercontrol.htm
      

  3.   

    saucer(思归) 你的方法我用过了,因为模版列上的值是用户后期输入的,所以在LoadViewState创建,只有列的样式,没有用户输入的数据
      

  4.   

    zippro123(WELAN),你没有明白我的意思,我的列是动态调用的,在其他的子程序里面,datagrid根本就数不到列,也没有item。datagrid.item.count的值也是0,所以根本没有办法遍历