asp.net - 当文本框值与特定 gridview 列值匹配时,更改 Gridview 行的颜色

标签 asp.net gridview

我有一个条形码扫描仪,当我扫描任何盒子时,特定的“BoxID”位于我的文本框中。因此,当我单击 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 数据绑定(bind)时发生。

所以,我尝试在 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”,例如 ASP.NET 中的“Gridview2.Row.RowType”而不是“e.Row.RowType

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

有什么想法吗?

最佳答案

您可以像这样循环遍历 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。

关于asp.net - 当文本框值与特定 gridview 列值匹配时,更改 Gridview 行的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32962378/

相关文章:

asp.net - 在 ASP 页面中嵌入 ASPX

c# - 从 Google 饼图工具提示中删除百分比

c# - 如何禁用回发或编码查询字符串 ASP.NET

c# - 如何通过点击按钮传递参数

android - 如何在设置 `ImageView` 时设置 `layout_weight` 的高度以匹配其宽度?

asp.net - 在ASP.NET登录控件中使用电子邮件作为用户名

asp.net - 使用variebyparam 和variebycustom 进行输出缓存

android - OnItemClickListener 未在 Android GridView 上触发

html - Gridview 100% 在一个 div 中

c# - Gridview 列的宽度可以在代码隐藏中以百分比形式更改吗?