在datagrid模版列里新添项
<asp:TemplateColumn HeaderText="考评">
<ItemTemplate>
<asp:TextBox Text='<%# DataBinder.Eval(Container.DataItem,"Score")%>' MaxLength="3" Width="80" AutoPostBack="True" id="Score" runat="server">
</asp:TextBox>
<asp:RegularExpressionValidator id="R1" runat="server" ErrorMessage="*" ControlToValidate="Score" ValidationExpression="\d{0,3>}">(——多问一句[0-100]的正则表达式怎么写?)</asp:RegularExpressionValidator>
</ItemTemplate>
</asp:TemplateColumn>
在代码里可以通过(TextBox)DataGrid1.Items[i].FindControl("Score")取里面的值
但是如何在程序里设置这个textbox的值呢?

解决方案 »

  1.   

    [1-100]+\d{1,3}
    差不多就是这样了,前面括号里的是取值范围,后面括号里的是长度范围,\d就是数值的意思.你知道怎么样获取  点击GridView中Edit按钮后,编辑框中的值吗?
    我遇到了一个问题就是:点击GridView中Edit按钮后,得到的是Null,这怎么解决啊?
      

  2.   

    你想在什么时候设置
    分别对应各个事件、比如编辑时、绑定后
    ((TextBox)DataGrid1.Items[i].FindControl("Score")).Text="value";
      

  3.   

    我是用(TextBox)DataGrid1.Items[i].FindControl(TextboxID)取值的
    你要使点击的edit按钮,按钮的CommandName为Edit,触发EditCommand和ItemCommand事件,把下面函数指给EditCommand
    private void (object sender, System.EventArgs e)
    {
        DataGrid1.EditItemIndex=e.Item.ItemIndex;
        TextBox t1=(TextBox)e.Item.FindControl(TextboxID);
        string aa=t1.text;
    }aa就是要取得值,不知道是不是yuanzhe_221() 要的
      

  4.   

    aspdotnet2005谢谢,解决了,[0-100]正则表达式[1-100]+\d{1,3}好像试了不对