//<asp:datagrid OnItemDataBound="ibd" ...............
public void ibd(Object o,DataGridItemEventArgs e)
{
  if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==                  ListItemType.AlternatingItem)
{
   TextBox t1=((TextBox)e.Item.FindControl("w1"));
   //这里你当然可以得到其他模板列的值
   string var_wzbm=t1.Text;
   if(var_wzbm=="b")//这里的if块你自己写按照你的意思你可以得到名称和单价相同的
   //句子,如果出来纪录>1则表示满足条件
   {
      t1.ReadOnly=true;//这里将TextBox设为只读,这样确定按钮根本就不用教验
   }
}}

解决方案 »

  1.   

    可能是我还没有说清楚,如果datagrid里的结果是:
    ID    名称     数量    单价
    1     打印纸   3       3
    1     打印纸   3       3
    12    钢笔     4       7
    那么就提示用户“打印纸”不可以重复!datagrid的数据是用户自己生成的/不是从数据库里提取的/
      

  2.   

    for(int i=0;i<dg1.Items.Count;i++)
    {
    string var_yhzh
    DataGridItem myitem=dg1.Items[i];
    TextBox T_1=(TextBox)myitem.FindControl("T_yhzh");
    string var=T_1.Text;
    for(int j=i+1;j<dg1.Items.Count;j++)
    {
        //两次嵌套,取出模板列的值进行比较
    }}