"> استفاده از IF در DataBinder.Eval

استفاده از IF در DataBinder.Eval

IF شرطی

در این مقاله به همراه مثال به شما آموزش خواهیم داد که چگونه با DataBinder.Eval از IF شرطی در ASP.Net استفاده کنید.

DataBinder.Eval به همراه DataBound کنترل هایی مثل GridView، Repeater، DataList و … استفاده می شود. در ادامه ی مطلب نیز سورس برای دانلود قرار داده شده است …

تصویر کلی

در جدول های پایگاه داده (دیتابیس)، کد های خاصی داریم که معانی خاصی نیز دارند. برنامه نویس ها از اهمیت این کد ها آگاه اند اما کاربران متوجه نمی شوند که یک کد خاص به چه معنا می باشد. در چنین مواردی باید مقدار و مفهموم کد ها را به مفاهیم ساده تر و قابل درک تغییر دهیم.

برای مثال، سناریو یک جلسه ملاقات را تصور کنید. ستون وضعیت در پایگاه داده شامل دو مقدار A و P می باشد که A به مهنای غایب به طور مثال: شخصی که به جلسه نرسیده است و P به معنای حاضر به طور مثال: شخصی که خود را به جلسه رسانده است می باشد. اما کاربران متوجه نمی شوند که A و P به چه معنا می باشد، و از این رو با ساخت IF ELSE condition توسطEVAL function، A با غایب (Absent) و P با حاضر (Present) جا به جا می شوند که مفهموم آن را واضح تر می کند.

IF شرطی

HTML نشان گذاری شده زیر شامل یک GridView ASP.Net با دو ستون BoundField و یک ستون TemplateField می باشد.

با استفاده از Inline Expression، مفهموم EVAL function سنجیده و مقایسه می شود و اگر وضعیت A باشد ردیف غایب نشان داده می شود و در غیر این صورت حاضر نمایش داده می شود.

تذکر: syntax مورد استفاده در EVAL function به همراه Inline Expression برای C# و VB.Net متفاوت می باشد.

C#

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Id" HeaderText="Id" ItemStyle-Width="50" />
        <asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
        <asp:TemplateField HeaderText="Status" ItemStyle-Width="100">
            <ItemTemplate>
                <asp:Label Text='<%# Eval("Status").ToString() == "A" ? "Absent" : "Present" %>'
                    runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

VB.Net

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Id" HeaderText="Id" ItemStyle-Width="50" />
        <asp:BoundField DataField="Name" HeaderText="Name" ItemStyle-Width="150" />
        <asp:TemplateField HeaderText="Status" ItemStyle-Width="100">
            <ItemTemplate>
                <asp:Label Text='<%# If(Eval("Status").ToString() = "A", "Absent", "Present") %>'
                    runat="server" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

Namespaces

 باید namespace زیر را وارد کنید.

C#

using System.Data;

VB.Net

Imports System.Data

Bind کردن کنترل GridView در ASP.Net

GridView با یک DataTable پویا به همراه مقداری اطلاعات مصنوعی در صفحه ی رخداد ها ایجاد شده است.

C#

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        DataTable dt = new DataTable();
        dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("Status") });
        dt.Rows.Add(1, "John Hammond", "A");
        dt.Rows.Add(2, "Mudassar Khan", "P");
        dt.Rows.Add(3, "Suzanne Mathews", "P");
        dt.Rows.Add(4, "Robert Schidner", "A");
        GridView1.DataSource = dt;
        GridView1.DataBind();
    }
}

VB.Net

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Not Me.IsPostBack Then
        Dim dt As New DataTable()
        dt.Columns.AddRange(New DataColumn(2) {New DataColumn("Id"), New DataColumn("Name"), New DataColumn("Status")})
        dt.Rows.Add(1, "John Hammond", "A")
        dt.Rows.Add(2, "Mudassar Khan", "P")
        dt.Rows.Add(3, "Suzanne Mathews", "P")
        dt.Rows.Add(4, "Robert Schidner", "A")
        GridView1.DataSource = dt
        GridView1.DataBind()
    End If
End Sub


موفق باشید !IF

داریوش فرخی

داریوش فرخی هستم از سال 92 شروع به یادگیری برنامه نویسی و از سال 93 در بخش برنامه نویسی و تولید محتوای سایت mspsoft.com مشغول هستم. فعالیتم نیز بیشتر در زمینه های برنامه نویسی با سی شارپ و asp.net بوده است. اوقات فراغتم را هم غالبا با تماشای فیلم یا بازی های کامپیوتری پر میکنم .

نوشته‌های مرتبط

دیدگاه‌ها

*
*

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

کدیشن ! مارکت پروژه های برنامه نویسی راه اندازی شدیه توکه پا بریم ببینم