asp.net c#更新数据后更改gridview行颜色

时间:2017-08-22 22:17:09

标签: c# asp.net asp.net-mvc gridview row

我正在使用 asp.net 项目,而我正在使用带有Observable.fromArray("a1 a2 b1 c1 b2 c2".split("\\s")) .groupBy(v -> v.charAt(1)) // <------------------ .flatMap(g -> g .takeUntil(v -> v.charAt(0) == 'c') // <------------------ .toList()) .subscribe(...) 的GridView。 我在GridView上启用了编辑功能,因此我想在管理员编辑后更改行颜色并更新行。我怎么能这样做?

6 个答案:

答案 0 :(得分:0)

您可以执行以下操作:

创建一个属性以记录您编辑的最后一行,并按ViewState保持状态:

public int LastEditRowIndex
{
    get { return (int)ViewState["LastEditRowIndex"]; }
    set { ViewState["LastEditRowIndex"] = value; }
}

NullPointer的情况下指定默认值:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        LastEditRowIndex = -1;
    }
}

然后在更新完成时记录编辑的行索引:

protected void GridView1_RowUpdated(object sender, GridViewUpdatedEventArgs e)
{
    LastEditRowIndex = GridView1.EditIndex;
}

最后,在RowDataBound事件中更改 CSS

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow && e.Row.RowIndex == LastEditRowIndex)
        e.Row.CssClass = "bg-color-red";
}

不要忘记在样式表中添加样式:

.bg-color-red
{
    background-color: Red;
}

答案 1 :(得分:0)

在GridView的开始和结束标记之间嵌套<AlternatingRowStyle>元素。

<asp:GridView ID="GridView1" runat="server" >
    <Columns>
    </Columns>

    <AlternatingRowStyle BackColor="DarkRed" 
      ForeColor="DarkBlue"
      Font-Italic="true" />
</asp:GridView>

链接:https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.alternatingrowstyle(v=vs.110).aspx

答案 2 :(得分:0)

将此代码放入GridView的RowDataBound事件编辑部分:

 protected void Databound(object sender, GridViewRowEventArgs e)
 {
      if (e.Row.RowType == DataControlRowType.DataRow && 
             GVSocialMedia.EditIndex == e.Row.RowIndex)
      {
          YOUR GRIDVIEWID.EditRowStyle.BackColor = System.Drawing.Color.YOURCOLOUR;
      }
 }

答案 3 :(得分:0)

在GridView的RowUpdating事件中试试这个:

GridViewRow gvrEdit = GridView1.Rows[e.RowIndex];
gvrEdit.BackColor = Color.LightPink;

答案 4 :(得分:0)

所以我已经尝试了一切,似乎没有什么对我有用,所以我做的是我在数据库中添加了一个新实体,并将其命名为Edited 然后我在Gridview中将Edited的可见性设置为false,并且当更新完成时,它将1插入到Edited

我将此代码添加到RowDataBound

Product

我知道这可能是一种糟糕的方式但它有效

答案 5 :(得分:-1)

您可以拥有OnRowUpdating个事件并处理它。

void GridView1_RowUpdated(Object sender, GridViewUpdatedEventArgs e)
{
    GridView1.Rows[e.RowIndex].Attributes.Add("style", "background-color:Red;");
}