如何改变文本框文本后,点击一个按钮在一个网格视图

本文关键字:一个 文本 网格 按钮 视图 何改变 改变 | 更新日期: 2023-09-27 18:11:32

我有一个文本框和一个按钮都在gridview,当用户点击按钮,我想得到文本框文本并保存到数据库,然后清除文本!我使用下面的代码,它工作得很好,保存到数据库,但不能清除文本框为什么?

     protected void sendcm_Click(object sender, EventArgs e)
    {
        try
        {
            Button sendcm = (Button)sender;
            GridViewRow gvrow = (GridViewRow)sendcm.NamingContainer;
            int ActivityTypeID = Convert.ToInt32(activity.DataKeys[gvrow.RowIndex].Values["ActivityTypeID"].ToString());
            int SourceID = Convert.ToInt32(activity.DataKeys[gvrow.RowIndex].Values["SourceID"].ToString());
   TextBox tt = (TextBox)activity.Rows[gvrow.RowIndex].FindControl("cmtextbox");
                if (tt.Text != "")
                {
                    BusinessLayer.StatusComment_Table ncm = new BusinessLayer.StatusComment_Table();
                    ncm.Id = Convert.ToInt32(Session["ID"].ToString());
                    ncm.Statusid = SourceID;
                    ncm.Statuscommentdate = System.DateTime.Now;
                    ncm.Statuscommenttext = tt.Text;
                    ncm.Save();
                    tt.Text = ""; // its not working !!!!
                }
}

protected void Page_Load(object sender, EventArgs e)
{
    SessionLable.Text = Session["ID"].ToString();

    if (!IsPostBack)
    {
        getData();
    }
}

     public void getData()
    {
   activity.DataSource = BusinessLayer.Activity_Table.GetByProfileData(ID, -1, activity.PageSize);
                activity.DataBind();

        }

如何改变文本框文本后,点击一个按钮在一个网格视图

您需要在UI级别执行此操作。

使用jquery。Post调用保存数据的方法

返回一些值给$。Post回调告诉jquery Post已经完成,

然后执行$('#mytextfield').val(")

假设文本框有一个ID。我假设这是HTML?

你可能需要重新绑定你的网格,因为从你发布的代码,它不清楚,你在哪里绑定你的网格

你需要在你的页面中启用AjaxPostback。之后,在Page_Load逻辑中,包括代码

if(IsPostBack){...}else{...}

因此,您可以根据这是页面的新视图还是回发(由于用户单击按钮而刷新的页面)来处理UI元素的构造。UI元素被发送到浏览器,之后,服务器没有办法改变它,除了刷新页面本身。

手册(也是我推荐的)的方法是通过jQuery回发来做到这一点。正如在另一个答案中指出的那样,您需要为客户机浏览器设置一个端点以进行连接。服务器完成工作后,将结果返回给客户机。然后使用jQuery更新文本框

我这样做是为了解决我的问题!

    <asp:TextBox ID="cmtextbox" type="text" clientid="cmtextbox" TextMode="MultiLine" placeholder="نظر دهید..." Rows="1" style="resize:none"  class="form-control" runat="server"></asp:TextBox>
 <asp:Button ID="sendcm" style="margin-top:2px;"    OnClick="sendcm_Click" class="btn btn-success btn-sm pull-left " OnClientClick="ClearTextbox(this)"  runat="server" Text="ارسال" />   

  </script>
    <script type="text/javascript">
        ClearTextbox = function (that) {
            $(that).prevUntil('div.stop', '[ClientID="cmtextbox"]').val('');
        }
    </script>