datagrid 加checkbox的问题;
 <ItemTemplate> 
   <input type="hidden" id="SelectedID" runat="server" value='<%# DataBinder.Eval(Container.DataItem, "news")%>'/> 
   <asp:CheckBox ID="chkExport" Runat="server" /> 
   </ItemTemplate>             CheckBox chkExport;
            ArrayList oExArgs = new ArrayList();
            foreach (DataGridItem oDataGridItem in dgMain.Items) //dgMain 为datagrid的名称;
            {
                chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
                if (chkExport.Checked)
                 {
                   Response.Write("<Script Language =JavaScript>alert('ok');</Script>");
                  }
              }明明随便点中其中的一列,为什么还是不能执行Response.Write语句呢?datagrid中 加textbox列的的问题;
           <EditItemTemplate >
             <asp:TextBox ID ="txtstock" runat =server ></asp:TextBox>
          </EditItemTemplate>
在textbox输入一个数字 用下面的代码怎么取不出来?
  for (int i = 0; i <= DataGridbuyweb.Items.Count; i++)
        {
            TextBox objtextbox = (TextBox)DataGridbuyweb.Items[i].FindControl("objtextbox ");
            string text = objtextbox.Text;
            if (text != "")
            {
               string textcount=text;
            }
        }
知道的 指点一下!

解决方案 »

  1.   

    if(!IsPostBack)
    {
       //绑定DataGrid
    }
      

  2.   

    从lz描述的现象,很可能就是上面这个问题;因为每次postback,重新加载时都会先执行Page_Load,然后才是Button等控件的event handler,因此每次都重新绑定了DataGrid,先前的选中和输入都没有了~
      

  3.   

    谢谢  加checkbox的问题解决了  可加textbox的问题依然解决不了,我想把数据输入到textbox里面的,这个问题咋解决?指点一下喽。
      

  4.   

    for (int i = 0; i <= DataGridbuyweb.Items.Count; i++)
    {
         if(DataGridbuyweb.Items[i].ItemType == ListItemType.Edit)
         {
                TextBox objtextbox = (TextBox)DataGridbuyweb.Items[i].FindControl("objtextbox ");
                string text = objtextbox.Text;
                if (text != "")
                {
                   string textcount=text;
                }
         }
    }
    这是通过循环检索,但一般来说,你只需要在更新时取得“当前行”即可,方法:
    private void DataGrid1_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
            {
                TextBox objtextbox = (TextBox)e.Item.FindControl("objtextbox ");
                string text = objtextbox.Text;
            }