PDA

View Full Version : بایند فیلد رنگ به یک لیبل داخل گریدویو



r_mehrizi
شنبه 22 خرداد 1389, 10:20 صبح
من یک جدول دارم که یکی از فیلدهای اون فیلد رنگ هستش می خوام این تیبل را به گرید ویو بایند کنم و فیلد رنگ جدول را به backcolor یک لیبل داخل گریدویو نسبت بدم چطوری این کار را باید انجام بدم



<asp:TemplateField HeaderText="عنوان">
<ItemTemplate>
<%#Eval("s_title")%>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="رنگ">
<ItemTemplate>
<asp:Label runat="server" ID="lb1_color" Width="10px" Height="5px" BackColor="" ></asp:Label>
</ItemTemplate>
</asp:TemplateField>
چطوری مقدار فیلد رنگ را به خاصیتback color لیبل lbl_color نسبت بدم

profnami
شنبه 22 خرداد 1389, 10:30 صبح
<asp:Label runat="server" ID="lb1_color" Width="10px" Height="5px" BackColor='<%#Eval("color")%' ></asp:Label>

r_mehrizi
شنبه 22 خرداد 1389, 10:45 صبح
<asp:Label runat="server" ID="lb1_color" Width="10px" Height="5px" BackColor='<%#Eval("color")%' ></asp:Label>


این شکلی که نمیشه نوشت پیغام خطا میده

Vahid_moghaddam
شنبه 22 خرداد 1389, 10:48 صبح
نام فیلد رنگ رو درست نوشتید؟ color فیلد رنگ در datasource هست؟ پیغام خطا رو بذارید

r_mehrizi
شنبه 22 خرداد 1389, 10:53 صبح
نام فیلد رنگ رو درست نوشتید؟ color فیلد رنگ در datasource هست؟ پیغام خطا رو بذارید


پیغام زیر را میده

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidCastException: Specified cast is not valid.

Source Error:

Line 94: <asp:TemplateField HeaderText="رنگ">
Line 95: <ItemTemplate>
Line 96: <asp:Label runat="server" ID="lb1_color" Width="10px" Height="5px" BackColor='<%#Eval("s_color")%>' ></asp:Label>
Line 97: </ItemTemplate>
Line 98:

Vahid_moghaddam
شنبه 22 خرداد 1389, 10:55 صبح
نوع فیلد s_color چیه؟

r_mehrizi
شنبه 22 خرداد 1389, 11:05 صبح
نوع فیلد s_color چیه؟

nvarchar(50)

ali_zzr
شنبه 22 خرداد 1389, 11:17 صبح
رنگ رو از چه نوعی وارد کردید .اگر از نوع اسمی هست که هیچی ولی اگر کد هست باید یک علامت # به کد اضافه بشه :


<asp:Label runat="server" ID="lb1_color" Width="10px" Height="5px" BackColor='#<%#Eval("s_color")%>' ></asp:Label>

Vahid_moghaddam
شنبه 22 خرداد 1389, 11:28 صبح
از رویداد RowDataBound در GridView استفاده کنید:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
((Label)e.Row.FindControl("lb1_color")).BackColor =
System.Drawing.Color.FromName(((DataRowView)e.Item .DataItem)["s_color"].ToString());
}
}

و:
using System.Data;