<asp:TemplateField HeaderText="日期"> 
    <EditItemTemplate> 
        <asp:TextBox ID="textOne" runat="server" Text='<%# Bind("rq") %>' ReadOnly="True" ></asp:TextBox> 
    </EditItemTemplate> 
    <ItemTemplate> 
        <asp:Label ID="lblOne" runat="server" Text='<%# Bind("rq", "{0:yyyy年M月d日}") %>'>
        </asp:Label> 
    </ItemTemplate> 
</asp:TemplateField>怎么取得EditItemTemplate里的TextBox的改变后的值?TextBox 调用了一个时间控件,为了格式正确性不允许用户手动输入,但是设置成只读后取不到改变后的值怎么取到?

解决方案 »

  1.   

    添加参数了。 
    sqlcmd.Parameters.Add(new SqlParameter("@ProSn", SqlDbType.Int, 4));
    sqlcmd.Parameters["@ProSn"].Value = ProGridView.Rows[e.RowIndex].Cells[0].Text;
    照这改改
      

  2.   

    string time= ((TextBox)GridView1.Rows[e.RowIndex].FindControl("textOne")).Text;
      

  3.   

    但是在页面加载的时刻要加上这样的一个东西。。!ispostback
      

  4.   

    protected void gvTest_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            string id = this.gvTest.DataKeys[e.RowIndex].Value.ToString();
            string aa= ((TextBox)gvTest.Rows[e.RowIndex].Cells[0].Controls[0]).Text.ToString();      
            DbUtil.ExecuteNonQuery("update guestcenter set neirong='"+aa+"'where id=" + id + "");
            this.gvTest.EditIndex = -1;
            this.lianxibind();
        }参考一下
      

  5.   

    5 楼 txg92 
    不行的
    string aa= ((TextBox)gvTest.Rows[e.RowIndex].Cells[0].Controls[0]).Text.ToString();  
    这句取不了文本框的值的
    更别说ReadOnly了`
      

  6.   

    在后台设置只读,TextBox.attributes.add("readonly","readonly")
    前台不要加readonly
      

  7.   


    设置不了啊,EditItemTemplate里的控件不能直接访问到
    要先 (TextBox)gvwOne.Rows[e.RowIndex].Cells[0].Controls[0]  这样转一次,但是Page_Load里没有e.RowIndex