如何改变文本框文本后,点击一个按钮在一个网格视图
本文关键字:一个 文本 网格 按钮 视图 何改变 改变 | 更新日期: 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>