نمایش نتایج 1 تا 12 از 12

نام تاپیک: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

  1. #1
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    Question تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    سلام .

    فرض کنید که یک فیلد داریم با نام Status که مشخص می کنه که کاربر فعال هست یا نه . که به صورت صفر یا یک هست .
    حالا قرار هست که مشخصات کاربران رو در یک Grid نمایش بدیم .

    datatable پر میشه و به grid خودمون bind می کنیم .

    حالا چطور میشه در گرید به جای نمایش ۱ مثلا بنویسیم فعال یا مثلا یک آیکون نمایش داده بشه و به جای صفر غیر فعال و غیره ...

    زبان هم vb هست . چند جا هم جستجو کردم همه میگن با Rowdatabound باید کار کرد اما مثال کاملی وجود نداشت و هر کدوم یک اشکالی داشت .

    با تشکر .

  2. #2
    مدیر بخش آواتار ahmad156
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    شیراز
    پست
    2,104

    نقل قول: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    اگه درست منظورتون رو متوجه شده باشم.
    توی تابع زیر src یکی از ستون ها که Image رو براساس شرایط خاصی که فیلد IsInPolygon داره عوض میکنم

    protected void gvForm_RowDataBound(object sender, GridViewRowEventArgs e)
    {
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
    int isInPolygon = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "isInPolygon"));
    if (isInPolygon == 0)
    {
    Image img = (Image)e.Row.FindControl("imgIsInPolygon");
    img.ImageUrl = "../images/icn_warning.png";
    img.ToolTip = "ثبت در بیرون از موقعیت نعیین شده";
    }
    }

    }
    آخرین ویرایش به وسیله ahmad156 : دوشنبه 09 اردیبهشت 1392 در 18:03 عصر



  3. #3

    نقل قول: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    میتونید فیلد Boolean رو به TemplateFieldتبدیل کنید بعد به جای Checkbox توش یه Lable بزارید و Text Lable رو به شکل زیر Convert کنید :


    <asp:Label ID="Label1" runat="server" Text='<%# Convert.ToBoolean(Eval("Comment_Read")) ? "درست" : "نادرست"%>'></asp:Label>



    این برای متن بود ، برای Image هم به جای Lable دو تا عکس بزارید داخل Template Field یکی برای True و یکی False ، خاصیت Visible عکس درست رو بایند کنید به متغیر Boolean و Visible عکس غلط رو بایند کنید به نقیض فیلد Boolean

  4. #4
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    من کد رو به vb تبدیل کردم و البته کمی تغییر دادم که بتونم برای متن استفاده کنم

     If e.Row.RowType = DataControlRowType.DataRow Then
    Dim isInPolygon As Integer = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "art_publish"))

    If isInPolygon = 1 Then

    Dim txt As Label = DirectCast(e.Row.FindControl("art_publish"), Label)
    txt.Text = "Test"

    End If

    End If


    اما به قسمت txt.text = "test" اخطار میده و میگه Object reference not set to an instance of an object.

    نکته ای که اینجا هست اینه که در همین کدهای شما آیا isInPolygon اسم فیلد هست ؟

    اگر بله که خوب پس چرا اشکال میگیره و اگر نه که اون ها چی هستند ؟

    با تشکر ./

  5. #5
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    نقل قول نوشته شده توسط elahe471 مشاهده تاپیک
    میتونید فیلد Boolean رو به TemplateFieldتبدیل کنید بعد به جای Checkbox توش یه Lable بزارید و Text Lable رو به شکل زیر Convert کنید :


    <asp:Label ID="Label1" runat="server" Text='<%# Convert.ToBoolean(Eval("Comment_Read")) ? "درست" : "نادرست"%>'></asp:Label>



    این برای متن بود ، برای Image هم به جای Lable دو تا عکس بزارید داخل Template Field یکی برای True و یکی False ، خاصیت Visible عکس درست رو بایند کنید به متغیر Boolean و Visible عکس غلط رو بایند کنید به نقیض فیلد Boolean
    این روش هم هست اما همه به همین سادگی نیستند که true و false باشند . خیلی از فیلد ها باید از یک تیبل دیگه اطلاعاتشون رو استخراج کنند و بعضی هم محاسبات دارند .

    با تشکر ./

  6. #6
    مدیر بخش آواتار ahmad156
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    شیراز
    پست
    2,104

    نقل قول: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    آره IsInPolygon اسم فیلد هست.
    چه خطایی؟؟؟



  7. #7
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    نقل قول نوشته شده توسط ahmad156 مشاهده تاپیک
    آره IsInPolygon اسم فیلد هست.
    چه خطایی؟؟؟
    گفتم دیگه :‌Object reference not set to an instance of an object.

  8. #8
    مدیر بخش آواتار ahmad156
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    شیراز
    پست
    2,104

    نقل قول: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    مطمئنین اسم فیلد و ID کنترل مورد نظرتون رو درست نوشته باشین؟یا اصلا فیلدی با این نام توی DataSource گریدتون باشه؟
    کد بالا رو من خیلی استفاده کردم و هیچ وقت خطا نداده!!!



  9. #9
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    قسمت دوم که میگه : e.Row.FindControl این Id کدوم کنترل رو باید بهش بدم ؟

  10. #10
    مدیر بخش آواتار ahmad156
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    شیراز
    پست
    2,104

    نقل قول: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    همون ستونی که میخواین تغییر بدین.ستون گرید من که تغییر میده به صورت زیر هست

    <asp:TemplateField>
    <ItemTemplate>
    <asp:Image ID="imgIsInPolygon" runat="server" ImageUrl="../images/icn_succes.png" ToolTip="ثبت در موقعیت نعیین شده" />
    </ItemTemplate>
    </asp:TemplateField>



  11. #11
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    آهان . متوجه شدم

    فراموش کرده بودم Templatefield رو .

    ممنون .

  12. #12
    کاربر دائمی آواتار Dr.Bronx
    تاریخ عضویت
    مهر 1386
    محل زندگی
    Hosna Soft
    پست
    1,108

    نقل قول: تغییر محتوای فیلد برگشتی جهت نمایش در گرید

    این هم برای آیندگان ...

    کد کامل توی VB میشه

        Private Sub ArticlesGrid_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles ArticlesGrid.RowDataBound

    If e.Row.RowType = DataControlRowType.DataRow Then
    Dim IsThisEnable As Integer = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "art_publish"))
    Dim txt As Label = DirectCast(e.Row.FindControl("lblStatus"), Label)

    If IsThisEnable = 1 Then

    txt.Text = "فعال"

    Else

    txt.Text = "غیر فعال"

    End If

    End If


    End Sub


    بعد موضوعی که می مونه اینه که بعد از این کار دیگه Sorting و Paging کار نمی کنه و خطا میده . که راه حلش این کد ها هست .

       Private Sub ArticlesGrid_PageIndexChanging1(sender As Object, e As GridViewPageEventArgs) Handles ArticlesGrid.PageIndexChanging
    ArticlesGrid.PageIndex = e.NewPageIndex
    ArticlesGrid.DataBind()
    End Sub

    Private Function ConvertSortDirectionToSql(sortDirection__1 As SortDirection) As String
    Dim newSortDirection As String = [String].Empty

    Select Case sortDirection__1
    Case SortDirection.Ascending
    newSortDirection = "ASC"
    Exit Select

    Case SortDirection.Descending
    newSortDirection = "DESC"
    Exit Select

    End Select

    Return newSortDirection
    End Function

    Private Sub ArticlesGrid_Sorting(sender As Object, e As GridViewSortEventArgs) Handles ArticlesGrid.Sorting
    Dim dataTable As DataTable = TryCast(ArticlesGrid.DataSource, DataTable)

    If dataTable IsNot Nothing Then
    Dim dataView As New DataView(dataTable)
    dataView.Sort = e.SortExpression + " " + ConvertSortDirectionToSql(e.SortDirection)

    ArticlesGrid.DataSource = dataView
    ArticlesGrid.DataBind()
    End If
    End Sub


    یعنی عملیات رو باید به صورت دستی انجام بدیم .

    موفق باشید ./

تاپیک های مشابه

  1. سوال: سوال در مورد تغییر محتوای فیلد
    نوشته شده توسط Dead Space در بخش MySQL
    پاسخ: 1
    آخرین پست: پنج شنبه 12 آبان 1390, 14:23 عصر
  2. تغییر محتوای فیلد string فایل Res که به فایل exe چسبیده است
    نوشته شده توسط mah.yar در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: جمعه 28 تیر 1387, 08:04 صبح
  3. تغییر محتوای فیلد در VB.Net
    نوشته شده توسط sepideh65 در بخش گزارش سازی با Crystal Report
    پاسخ: 1
    آخرین پست: پنج شنبه 31 خرداد 1386, 10:14 صبح
  4. تغییر محتوای فیلد در یک سطر دیتا گرید
    نوشته شده توسط farnaz2003 در بخش C#‎‎
    پاسخ: 7
    آخرین پست: چهارشنبه 19 اردیبهشت 1386, 10:25 صبح
  5. پاسخ: 0
    آخرین پست: سه شنبه 26 مهر 1384, 23:28 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •