在datagrid的编辑模版中有个名为txt_new的文本框,在datagrid的update事件中有
TextBox newname =(TextBox)e.Item.FindControl("txt_new");
string name=newname.text.tostring();
为什么每次name的值都是空呢??

解决方案 »

  1.   

    DataGrid在转入编辑状态的时候,还在再进行一次数据绑定
      

  2.   

    没有确定rows[i]?string name=newname.text.tostring();
    没必要text.tostring()
      

  3.   

    在更新DataGrid_Update()事件中写TextBox tb=(TextBox)e.Item.Cells[3].Controls[0];
    string str=tb.Text;
      

  4.   

    TextBox newname = (TextBox)web.Items[e.Item.ItemIndex].FindControl("txt_new");
      

  5.   

    后台 if(e.Item.ItemType==ListItemType.EditItem)
    {
    bool   Boolean;
    string StrErr; 
    entity_dic entity = new entity_dic();
    entity.code = System.Convert.ToDecimal(Datagrid2.DataKeys[e.Item.ItemIndex].ToString());
    //entity.lxdm = TB_lxdm.Text;
    TextBox t2 = (TextBox)e.Item.FindControl("textbox3"); 
    CheckBox c1=(CheckBox)e.Item.FindControl("chkenabled");
    entity.content = t2.Text;
    entity.editable = c1.Checked;
    Da_dic Da =new Da_dic();
    if(entity.content!="")
    {
    Boolean = Da.Up_Dic(entity);
    StrErr = Da.StrError;
    if ((!Boolean) || (StrErr !=null)) 
    {
    //MessageBox.Show(StrErr, "数据库错误", MessageBoxButtons.OK, MessageBoxIcon.Error)
    System.Console.WriteLine(StrErr);
    //Reponse.Write(StrErr)
    return;
    }
    }
    else{
    Page.Response.Write("<script language=javascript>alert(\'词典内容不能为空\');</script>");
    return;
    }
    this.Datagrid2.EditItemIndex=-1;
    BindGrid();
    }
    前台
    <asp:TemplateColumn HeaderText="字典内容">
    <ItemTemplate>
    <asp:Label id=Label3 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.content") %>'>
    </asp:Label>
    </ItemTemplate>
    <FooterTemplate>
    <asp:TextBox id="TextBox4" runat="server"></asp:TextBox>
    </FooterTemplate>
    <EditItemTemplate>
    <asp:TextBox id="TextBox3" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.content") %>'>
    </asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:TemplateColumn HeaderText="是否可见">
    <ItemTemplate>
    <%# DataBinder.Eval(Container.DataItem,"editable") %>
    </ItemTemplate>
    <FooterTemplate>
    <asp:CheckBox id="Checkbox1" Runat="server" Checked='true'></asp:CheckBox>
    </FooterTemplate>
    <EditItemTemplate>
    <asp:CheckBox id=chkenabled Runat="server" Checked='<%# DataBinder.Eval(Container.DataItem,"editable") %>'>
    </asp:CheckBox>
    </EditItemTemplate>
    </asp:TemplateColumn>