2015-10-06 75 views
3

我有一個條形碼掃描器,當我掃描任何框時,該特定的「BoxID」位於我的文本框中。所以當我點擊輸入時,它應該檢查GridView中特定的BoxID,並且應該爲整行着色。查看下面的截圖。當文本框的值與特定的gridview列值匹配時,更改Gridview行的顏色

我用RowDataBound函數來改變顏色,但是這個函數只能在GridView的DataBinds中運行一次。

我的RowDataBound代碼:

protected void GridView2_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
     // determine the value of the UnitsInStock field 

     string myBoxId = (DataBinder.Eval(e.Row.DataItem, "BoxID")).ToString(); 
     if (myBoxId == TextBox1.Text) 
     { 
      e.Row.BackColor = System.Drawing.Color.Yellow; 
     } 
    } 
} 

此代碼是正確的,但正如我所說的它僅發生gridview的databinds。

所以,我試着撥打的RowDataBound在TextBox1_TextChanged

protected void TextBox1_TextChanged(object sender, EventArgs e) 
{ 
    GridView2.RowDataBound += new GridViewRowEventHandler(GridView2_RowDataBound); 

} 

即使它did'n工作。

所以我想寫一個像RowDataBound,在textbox.textchanged內的方法。我也嘗試過,但他們已經使用了「e」,這是一個GridViewRowEventArgs。因此,如何調用textbox.textchanged這個「E」,像「Gridview2.Row.RowType」,而不是在ASP.NET

這是我的屏幕看起來像 enter image description here

任何想法「e.Row.RowType」?

+0

我想你在尋找這個http://www.aspsnippets.com/Articles/Search-records-in-GridView-and-highlight-results-in-ASPNet-using-C-and-VBNet.aspx – 2015-10-06 05:35:04

+0

謝謝你,但不,這只是選擇所有與文本框值有關的值,但我想顏色那個心室行,我的id是唯一的 –

+0

你想要整行顏色? – 2015-10-06 05:38:02

回答

3

您可以通過GridView行這樣的循環: -

protected void TextBox1_TextChanged(object sender, EventArgs e) 
{ 
    foreach (GridViewRow row in GridView2.Rows) 
    { 
     if (row.Cells[1].Text == txtBarCode.Text) 
     { 
      row.BackColor = System.Drawing.Color.Yellow; 
      break; 
     } 
    } 
} 

更新:

如果你不想重新加載頁面,那麼你可以使用jQuery客戶端做像這樣: -

$(document).ready(function() { 
     $("#btnSearch").click(function (e) { 
      e.preventDefault(); 
      var enteredText = $("#txtBarCode").val(); 
      var gridview = $('#GridView2'); 
      $('tr', gridview).each(function() { 
       var parentRow = $(this); 
       if ($('td:nth-child(2)', parentRow).text() == enteredText) 
       { 
        parentRow.css("background-color", "yellow"); 
        return false; 
       } 
     }); 
    }); 
}); 

在這裏,btnSearch是您的按鈕的ID。

+0

謝謝。這工作完美,但Textbox1.TextChanged將刷新頁面,所以我已經調用內部按鈕相同的方法... –

+0

@Anirudh - 哪個按鈕?無論如何,這些服務器控件將回發按鈕或文本框。如果你不希望用Javascript來做更好的事情。 –

+0

我在文本框前面使用了單獨的按鈕。是按鈕將只調用其特定的方法,其中在文本框中調用pageload方法將刷新。反正非常感謝..它工作 –

相關問題