当Textbox值与特定gridview列值匹配时,更改Gridview行的颜色

时间:2015-10-06 05:31:45

标签: asp.net gridview

我有一个条码扫描器,当我扫描任何盒子时,特定的“BoxID”位于我的TextBox中。因此,当我单击Enter时,它应检查GridView中的特定BoxID并应为整行着色。请检查下面的屏幕截图。

我使用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数据库时才会发生。

所以,我试图在TextBox1_TextChanged

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

}

即使它没有用。

所以我想在textbox.textchanged里面写一个像RowDataBound这样的方法。我也试过了,但他们使用的是“e”,它是GridViewRowEventArgs。那么,如何在textbox.textchanged中调用这个“e”,类似于“Gridview2.Row.RowType”而不是ASP.NET中的“e.Row.RowType

这就是我的屏幕的样子 enter image description here

任何想法?

1 个答案:

答案 0 :(得分: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。