处理时更改gridview行的背景颜色

时间:2014-06-11 12:12:10

标签: c# asp.net gridview

我需要做的是在处理过程中突出显示每一行以显示进程进度,gridview可能包含几乎一千行。下面是我写的代码但不起作用。 请有人帮助我。

<

asp:GridView ID="gdview1" runat="server" BackColor="White"
                BorderColor="#DEDFDE" BorderStyle="Solid" BorderWidth="1px" CellPadding="4"
                ForeColor="Black" GridLines="Vertical" Font-Names="Calibri"
                Font-Size="Small" AutoGenerateColumns="False"
                OnRowDataBound="gdview1_RowDataBound"
                OnSelectedIndexChanged="gdview1_SelectedIndexChanged">
                <AlternatingRowStyle BackColor="White" />
                <Columns>
                    <asp:TemplateField>
                        <HeaderTemplate>
                            <asp:CheckBox ID="chkBxHeader" OnCheckedChanged="chkSelect_CheckedChanged" AutoPostBack="true" runat="server" />
                        </HeaderTemplate>
                        <EditItemTemplate>
                            <asp:CheckBox ID="chkNUM" runat="server" />
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:CheckBox ID="chkNUM" runat="server" DataField="ColNUM" />
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="Row#">
                        <ItemTemplate>
                            <%# Container.DataItemIndex + 1 %>
                        </ItemTemplate>
                    </asp:TemplateField>

                    <asp:BoundField DataField="ColNUM" HeaderText="Contract #" />
                    <asp:BoundField DataField="Col1" HeaderText="Suffix" />
                    <asp:BoundField DataField="Col2" HeaderText="First Name" />
                    <asp:BoundField DataField="Col3" HeaderText="Last Name" />
                    <asp:BoundField DataField="Col4" HeaderText="Street" />
                    <asp:BoundField DataField="Col5" HeaderText="City" />
                    <asp:BoundField DataField="Col6" HeaderText="Zip" />

                </Columns>
                <FooterStyle BackColor="#CCCC99" />
                <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
                <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
                <RowStyle BackColor="#F7F7DE" />
                <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
                <SortedAscendingCellStyle BackColor="#FBFBF2" />
                <SortedAscendingHeaderStyle BackColor="#848384" />
                <SortedDescendingCellStyle BackColor="#EAEAD3" />
                <SortedDescendingHeaderStyle BackColor="#575357" />

            </asp:GridView>




 namespace WebApplication1
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {

            }

            protected void butChargeCreditCards_Click(object sender, EventArgs e)
            {

                DataTable tblContrts = (DataTable) Session["tblContrts"];

                foreach (GridViewRow row in gdview1.Rows)
                {

                    CheckBox chkbx = (CheckBox) row.FindControl("chkNUM");

                    if (chkbx != null && chkbx.Checked)
                    {

                        gdview1_SelectedIndexChanged(row,e);



                        string SS = chkbx.Text.ToString();



                        string strResults = method1;



                    }


                }

            }


            protected void gdview1_SelectedIndexChanged(object sender, EventArgs e)
            {

                foreach (GridViewRow row in gdview1.Rows)
                {
                    if (row.RowIndex == gdview1.SelectedIndex)
                    {
                        row.BackColor = ColorTranslator.FromHtml("#A1DCF2");
                    }
                    else
                    {
                        row.BackColor = ColorTranslator.FromHtml("#FFFFFF");
                    }
                }
            }

        }
    }

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用网格的“OnRowDataBound”或“OnRowCreated”事件并在代码中写下颜色高位?

这样的事情?
http://www.java2s.com/Code/ASP/ADO.net-Database/UsingtheRowCreatedEventtoprogrammaticallychangethestyle.htm

但也许你有问题,因为加载速度太快而无法注意到?