2014-07-03 82 views
1

我有一個文本框和一個按鈕都在gridview上,當用戶點擊按鈕時我想獲取文本框文本並保存到數據庫然後清除文本!我用它下面的代碼工作正常,並保存到數據庫,但不能清除文本框爲什麼?如何改變文本框文本後點擊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(); 



     } 
+0

您是否正在重新發布您的gridview回發?你的page_load發生了什麼? –

+0

@RickS我編輯了我的問題 –

+0

textbox1.text = string.Empty;使用這個綁定你的gridview後 – Amitesh

回答

0

我這樣做是爲了解決我的問題!

<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> 
+1

這非常符合我的建議。我很高興你明白了。 -Judson –

3

您需要在UI層面做到這一點。

使用jquery.post調用保存數據的方法。

一些回報,回到$。員額回調告訴jQuery的該職位氏完全,

然後像做$( '#myTextField將')。VAL( '')

假設文本框有一個ID。我假設這是HTML?

+0

這樣會清除所有文本框,但我只想清除它們! –

+0

$('#mytextfield').val('')僅清除具有該ID的特定文本框。您可以通過將ID傳遞給標記id =「someIdVariable」或在循環中爲IDS創建自動遞增變量來自動生成每個文本框的ID。如果您需要更多,請告訴我。 –

0

您可能需要重新綁定您的網格,因爲從您發佈的代碼中不清楚您將重新綁定網格的位置。

0

您需要在頁面中啓用AjaxPostback。在此之後,在你的Page_Load邏輯,包括代碼

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

因此,你可以處理這取決於這是否是頁面的全新視圖或回傳(頁面刷新UI元件的結構由於用戶點擊按鈕)。 UI元素被髮送到瀏覽器,之後,服務器無法更改它,除非刷新頁面本身。

該手冊(和我推薦的)的方式是通過jQuery回發來做到這一點。正如在另一個答案中指出的那樣,您需要爲客戶端瀏覽器設置端點以進行連接。服務器完成其工作後,將結果返回給客戶端。然後使用jQuery來更新文本框。

相關問題