使用 SQL 和 Asp.net Gridview 的渐变网格视图

马库斯

我正在尝试在下面的 asp.net 中做一个渐变颜色是我的代码。当我在 google chrome 中调试时,我得到的结果是: background: linear-gradient(red, 'Color [A=255, R=230, G=255, B=0]';

我基本上是在从我的数据库中提取用户定义的颜色时尝试获得渐变样式的网格视图。我该如何实现?

 SqlDataAdapter grid13 = new SqlDataAdapter("SELECT [User],Colors, [TempID] 
 FROM dbo.[Colors]", con13);
    DataTable tools13 = new DataTable();
    grid13.Fill(tools13);
    DataTable alltools13 = new DataTable();


    foreach (DataRow row in tools13.Rows)
    {
        foreach (var item in row.ItemArray)
        {
            if (e.Row.Cells[1].Text == (row["User"].ToString()))
            {
                e.Row.Cells[0].BackColor = 
 System.Drawing.ColorTranslator.FromHtml(row["Colors"].ToString());
                e.Row.Cells[1].BackColor = 
 System.Drawing.ColorTranslator.FromHtml(row["Colors"].ToString());
                e.Row.Cells[2].BackColor = 
 System.Drawing.ColorTranslator.FromHtml(row["Colors"].ToString());
                e.Row.Cells[3].BackColor = 
 System.Drawing.ColorTranslator.FromHtml(row["Colors"].ToString());
               e.Row.Cells[1].Attributes.Add("style", "background: linear-
 gradient(red, 
 '"+System.Drawing.ColorTranslator.FromHtml(row["Colors"].ToString())+"'");
亨利克·布津斯基

并非所有浏览器都支持渐变,因此您应该注意这一点。

在我的示例中,我为每个项目编写了一个 CSS 类。你可以把它变成一个 C# 类并编写方法来识别相同的对象并避免相同的 CSS 类,但这不是这里的重点。

TableDAO(什么?)

使用 List <> 比使用 DataTable 更好。但是你在问题中使用了 DataTable,所以我在这里做了一个 GoHorse 只是为了与你的问题保持一致好吗?

public class TableDAO
{
    public DataTable GetClients()
    {
        var clientTable = new DataTable("tblClients");
        clientTable.Columns.Add("id", typeof(int));
        clientTable.Columns.Add("name", typeof(string));
        clientTable.Columns.Add("gradientParams", typeof(string));
        clientTable.Columns.Add("gradClass", typeof(string));

        var row = clientTable.NewRow();
        row[0] = 1;
        row[1] = "Kakaroto";
        row[2] = "left,red,orange,yellow,green,blue,indigo,violet";
        row[3] = "grad1";
        clientTable.Rows.Add(row);

        row = clientTable.NewRow();
        row[0] = 2;
        row[1] = "Vegeta";
        row[2] = "right,rgba(255,0,0,0),rgba(255,0,0,1)";
        row[3] = "grad2";
        clientTable.Rows.Add(row);

        row = clientTable.NewRow();
        row[0] = 3;
        row[1] = "Broly";
        row[2] = "-90deg, red, yellow";
        row[3] = "grad3";
        clientTable.Rows.Add(row);

        return clientTable;
    }
}

Aspx.cs(代码隐藏)

using TableDAO = MyApplication.DAO.TableDAO;
public partial class MyPage : System.Web.UI.Page
{
    protected string TableGradientCss { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        BindClients();
    }

    public void BindClients()
    {
        var dao = new TableDAO();
        var clientTable = dao.GetClients();
        gvDados.DataSource = clientTable;
        gvDados.DataBind();

        ExtractClientsGradientCss(clientTable);
    }

    protected void gvDados_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        var label = e.Row.FindControl("gradClass") as Label;
        if (label != null)
        {
            e.Row.CssClass = label.Text;
        }
    }

    private void ExtractClientsGradientCss(DataTable clients)
    {
        var sb = new StringBuilder();
        foreach(DataRow row in clients.Rows)
        {
            sb.Append(
                GetGradientCss(
                    row["gradClass"].ToString(),
                    row["gradientParams"].ToString()));
        }
        TableGradientCss = sb.ToString();
    }

    private string GetGradientCss(string className, string gradientParams)
    {
        var css = @"
        .{0} {{
            background: white;                          /* For browsers that do not support gradients */
            background: -webkit-linear-gradient({1});   /*Safari 5.1-6*/
            background: -o-linear-gradient({1});        /*Opera 11.1-12*/
            background: -moz-linear-gradient({1});      /*Fx 3.6-15*/
            background: linear-gradient({1});           /*Standard*/
        }} ";
        return string.Format(css, className, gradientParams);
    }
}

Aspx(设计器视图)

// some code
<style>
    <%= TableGradientCss %>
</style>
// more code
<asp:GridView ID="gvDados" runat="server"
    AutoGenerateColumns="false"
    OnRowDataBound="gvDados_RowDataBound">
    <Columns>
        <asp:TemplateField HeaderText="Código">
            <ItemTemplate>
                <%# Eval("id") %>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Nome">
            <ItemTemplate>
                <%# Eval("name") %>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField Visible="false">
            <ItemTemplate>
                <asp:Label ID="gradClass" runat="server"
                    Text='<%# Eval("gradClass") %>'>
                </asp:Label>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用asp.net和jQuery的GridView索引

来自分类Dev

ASP.NET(4.5)GridView绑定到动态生成的SQL查询以及分页和排序吗?

来自分类Dev

使用gridview asp.net的shoppingcart

来自分类Dev

使用gridview asp.net的shoppingcart

来自分类Dev

在asp.net gridview中使用ROW_NUMBER()在SQL中进行自定义分页

来自分类Dev

使用 asp.net web 表单 Gridview 从 SQL 数据源下载文件

来自分类Dev

使用变量的ASP.NET网格视图编辑

来自分类Dev

ASP.net:插入语句和gridview

来自分类Dev

Gridview和asp.net下拉列表,添加全选

来自分类Dev

Gridview在ASP.NET中编辑删除和更新

来自分类Dev

在ASP.NET GridView中使用Bootstrap tablesorter

来自分类Dev

使用实体框架进行Asp.net GridView搜索

来自分类Dev

使用超链接ASP.Net筛选GridView

来自分类Dev

使用Entity Framework的Asp.net GridView搜索

来自分类Dev

使用asp.net的jQuery Table Sorter对Gridview进行排序

来自分类Dev

C#ASP.net使用ImageButton填充GridView

来自分类Dev

使用超链接ASP.Net筛选GridView

来自分类Dev

ASP.NET GridView 使用 DataTable.Select 排序

来自分类Dev

使用 GridView 在 DB 上插入 ASP.NET 错误

来自分类Dev

使用 EPPlus 在 ASP.net 中将 Gridview 导出到 Excel

来自分类Dev

在asp.net中使用GridView,但正在GridView外部使用提交按钮

来自分类Dev

使用javaScript / jquery客户端在asp.net c#中的gridview计算中的gridview

来自分类Dev

排序GridView asp.net

来自分类Dev

Asp.net GridView OnRowUpdating

来自分类Dev

ASP.Net打印GridView

来自分类Dev

ASP.NET Gridview 出类拔萃

来自分类Dev

使用C#在ASP.NET和SQL Server中的登录页面

来自分类Dev

使用C#在asp.net中的SQL Server中保存和检索图像

来自分类Dev

如何在Linq-to-SQL和asp.net中使用存储过程?

Related 相关文章

热门标签

归档