【问题标题】:Change the color of the selected row of a grid view in asp.net c#在asp.net c#中更改网格视图的选定行的颜色
【发布时间】:2015-02-12 10:45:30
【问题描述】:

我有一个网格视图来显示消息列表。每行都有一个点击查看按钮,可以在弹出框中看到消息的更多详细信息。

现在我想在读取消息后更改行的颜色,即灰色。最初,网格视图中消息的颜色也会有所不同。已读消息行的颜色应该不同于未读消息。一旦阅读,颜色将永久改变。 新添加的未读行消息必须为彩色(红色)并再次阅读(灰色)。

    <asp:GridView CssClass="myGridStyle" class="gridview"  ID="showmsg" runat="server" AutoGenerateColumns="false" Width="970px"
            AlternatingRowStyle-BackColor = "#e6e6e6"   DataKeyNames ="mesg_id" GridLines="none">
            <Columns >
                  <asp:TemplateField ItemStyle-Width="150px"  ItemStyle-Height="30" HeaderStyle-HorizontalAlign="center"  HeaderText="From">
                <ItemTemplate  >
                 <asp:Label ID="lblfname"  align="center"  runat="server" Text='<%#Eval( "from_name") %>'></asp:Label>
                </ItemTemplate>
                </asp:TemplateField>

                <asp:TemplateField ItemStyle-Width="150px"  ItemStyle-Height="30" HeaderStyle-HorizontalAlign="center" HeaderText="Date">
                <ItemTemplate >
                 <asp:Label ID="lbldate" align="center"  runat="server" Text='<%#Eval( "sent_date","{0:M-dd-yyyy}") %>'></asp:Label>
                </ItemTemplate>
                </asp:TemplateField>   

                <asp:TemplateField ItemStyle-Width="350px"   ItemStyle-Height="30" HeaderStyle-HorizontalAlign="center" HeaderText="Subject">
                <ItemTemplate>
                 <asp:Label ID="lblsub"  align="center" runat="server" Text='<%#Eval( "subject") %>'></asp:Label>
                </ItemTemplate>
                </asp:TemplateField>   
                  <asp:TemplateField HeaderText=""  ItemStyle-Height="30" ItemStyle-Width="60px" >   
                    <ItemTemplate>
                        <asp:LinkButton ID="lnkView"  align="center" Font-Size="14px" font-family="calibri" Text="View"  OnClick="lnkEdit_Click" runat="server"></asp:LinkButton>
                    </ItemTemplate>
              </asp:TemplateField>                       
     </Columns>  
            <emptydatatemplate>  <div style="text-align:center;font-weight:bold">You have not recieved any messages</div> 
           </emptydatatemplate>           
            <HeaderStyle BackColor="#929292" ForeColor="White"  />
            <RowStyle />
        </asp:GridView>
    <br/><br/><br/>    <asp:Button ID="btnShowPopup" runat="server" style="display:none" />

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnShowPopup" PopupControlID="pnlpopup"
CancelControlID="btnCancel" BackgroundCssClass="modalBackground">
</asp:ModalPopupExtender>       
</td></tr>
</table></asp:Panel>
<asp:Panel ID="pnlpopup" runat="server" BackColor="White" Height="269px" Width="400px" style="display:none" >
<table width="100%" style="border:Solid 3px gray; width:100%; height:100%;" cellpadding="0" cellspacing="0" >
<tr style="background-color: gray">
<td colspan="2" style=" height:10%; color:White; font-weight:bold; font-size:larger" align="center">Message Details</td>
</tr>
<tr>
<td align="left" class="style1" >
 <div >  &nbsp;&nbsp; From:</div>
</td>
<td class="style2">
<asp:Label ID="lblfrom" runat="server" Font-Size="20px"></asp:Label>
</td>
</tr>
<tr>
<td align="left" class="style3">
<div>  &nbsp;&nbsp; Message:</div>
</td>
<td class="style4">
<asp:Label ID="lblmsg" runat="server" Font-Size="20px"></asp:Label>
</td>
</tr>

<tr>
<td class="style5">
</td>
<td>
<asp:Button ID="btnCancel" runat="server" Text="OK" Width="60px" />
</td>
</tr>
</table>

请建议必须做什么。

【问题讨论】:

    标签: c# css asp.net


    【解决方案1】:

    您必须在某处存储已阅读的消息。

    如果这是在服务器端完成的,并且考虑到您在单击“lnkView”链接按钮时正在执行回发,您可以使用 OnRowDataBound 并使用存储的“读取”标志设置行的颜色。

    protected void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
    {
        if(read)
        {
             e.Row.BackColor = System.Drawing.Color.Red;
        }
        else
        {
            e.Row.BackColor = System.Drawing.Color.Blue;
        }
    }
    

    【讨论】:

    • 好吧,我做到了。但是在单击查看按钮后,红色应该再次变为蓝色,因为现在已读取消息。我用于选定的索引更改,但它不起作用。还尝试更新点击功能上的读取值但没有变化。
    猜你喜欢
    • 1970-01-01
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    相关资源
    最近更新 更多