如何将gridview中的记录标记为已读和未读
How to mark records in gridview as read and unread
这是我的 GridView1。我想高亮显示最新的记录,当用户点击授权否(哪个用户在下一页查看记录)后,该行将不高亮(意味着用户查看记录后,该行恢复正常,不高亮没有粗体)。
我目前的进度是,
我在名为 ReadStatus 的数据库中创建了新的位域,默认为 0
接下来,我需要做onrowdatabound编码来实现这个。
第一个问题是,我是否需要在阅读所有此列时读取位列(ReadStatus)?AuthorizationNo,ProductID,Name,Qty,---(ReadStatus)?
我应该阅读这段代码中的 ReadStatus 吗?
/ /READING RECORD FROM TABLE TRACK_ITEM
while (reader.Read())
{
MerchantProduct merchantProduct = new MerchantProduct();
merchantProduct.TxID = reader["TxID"].ToString();
merchantProduct.ProductID = reader["ProductID"].ToString();
merchantProduct.Name = reader["ProductName"].ToString();
merchantProduct.Qty = Convert.ToInt32(reader["Qty"]);
listLatestProduct.Add(merchantProduct);
}
return listLatestProduct;
其次,谁能告诉我在 onrowdatabound 中编码的正确方法?
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//Tried many code here but none is working
}
谢谢。
首先您需要在您的数据库中为 ReadStatus(1/0) 添加一列,
然后 make 就像您的 aspx 页面中的隐藏字段一样。
<asp:TemplateField HeaderText="ReadStatus" Visible="false">
<ItemTemplate>
<asp:Label ID="readStatus" runat="server"></asp:Label>
<asp:HiddenField ID="readStatusHiddenField" runat="server" Value='<%#Eval("ReadStatus") %>'/>
</ItemTemplate>
</asp:TemplateField>
在你的网格 rowdataboun 中,只需粘贴这个 code.It 对我有用
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
// searching through the rows
if (e.Row.RowType == DataControlRowType.DataRow)
{
int reading = Convert.ToInt32(((HiddenField)e.Row.FindControl("readStatusHiddenField")).Value);
if (reading == 0)
{
e.Row.BackColor = Color.LightGray;
e.Row.Font.Bold = true;
}
}
}
这是我的 GridView1。我想高亮显示最新的记录,当用户点击授权否(哪个用户在下一页查看记录)后,该行将不高亮(意味着用户查看记录后,该行恢复正常,不高亮没有粗体)。
我目前的进度是, 我在名为 ReadStatus 的数据库中创建了新的位域,默认为 0 接下来,我需要做onrowdatabound编码来实现这个。
第一个问题是,我是否需要在阅读所有此列时读取位列(ReadStatus)?AuthorizationNo,ProductID,Name,Qty,---(ReadStatus)? 我应该阅读这段代码中的 ReadStatus 吗?
/ /READING RECORD FROM TABLE TRACK_ITEM
while (reader.Read())
{
MerchantProduct merchantProduct = new MerchantProduct();
merchantProduct.TxID = reader["TxID"].ToString();
merchantProduct.ProductID = reader["ProductID"].ToString();
merchantProduct.Name = reader["ProductName"].ToString();
merchantProduct.Qty = Convert.ToInt32(reader["Qty"]);
listLatestProduct.Add(merchantProduct);
}
return listLatestProduct;
其次,谁能告诉我在 onrowdatabound 中编码的正确方法?
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//Tried many code here but none is working
}
谢谢。
首先您需要在您的数据库中为 ReadStatus(1/0) 添加一列, 然后 make 就像您的 aspx 页面中的隐藏字段一样。
<asp:TemplateField HeaderText="ReadStatus" Visible="false">
<ItemTemplate>
<asp:Label ID="readStatus" runat="server"></asp:Label>
<asp:HiddenField ID="readStatusHiddenField" runat="server" Value='<%#Eval("ReadStatus") %>'/>
</ItemTemplate>
</asp:TemplateField>
在你的网格 rowdataboun 中,只需粘贴这个 code.It 对我有用
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
// searching through the rows
if (e.Row.RowType == DataControlRowType.DataRow)
{
int reading = Convert.ToInt32(((HiddenField)e.Row.FindControl("readStatusHiddenField")).Value);
if (reading == 0)
{
e.Row.BackColor = Color.LightGray;
e.Row.Font.Bold = true;
}
}
}