مشكلة إعداد أعمدة برمجيا للقراءة فقط على telerik radgrid

StackOverflow https://stackoverflow.com/questions/1708982

  •  19-09-2019
  •  | 
  •  

سؤال

أحاول أن أجعل أعمدة معينة ديناميكيا في وقت التشغيل باستخدام التعليمات البرمجية التالية في معالج Page_Load:

                GridNumericColumn gncp = grid.MasterTableView.GetColumn("ActualProduction") as GridNumericColumn;
                if (gncp != null)
                {
                    gncp.ReadOnly = true;
                }

ومع ذلك، يعمل الرمز أعلاه فقط إذا كان العمود هو العمود الأخير في الشبكة. إذا حاولت بالثاني إلى الأخير، أو أبعد أعمدة، فإن الأمر تحرير على الصف لم يعد يعمل. لا يتم طرح أي استثناء، وحرائق التحريرية، ولكن هذا هو المكان الذي يتوقف فيه الحزب.

أظن أنني قد أقوم بتعديل الشبكة في المكان الخطأ في دورة حياة الصفحة، لكنني لا أريد أن أبدأ البحث عن المكان المناسب عن طريق التجربة والخطأ. أنا ربط شبكتي باستخدام grid_NeedDataSource, ، ليس في تحميل الصفحة. أيه أفكار؟

هل كانت مفيدة؟

المحلول

حاول تحديد الوضع في مكان القراءة داخل معالج Prirnder of The Grid. أعتقد أن هذا هو المكان المناسب أكثر ملاءمة للقيام بذلك. المزيد عن تخصيص الأعمدة هنا.

ديك.

نصائح أخرى

هذا هو ما أستخدمه لشبكة ASP.NET MVC 3 Telerik. لم يكن لدي مشاكل في تغيير ترتيب الأعمدة. من الواضح أنني أستخدم محرك عرض الشفرة. آمل أن يساعد هذا.

  @(Html.Telerik().Grid(Model)
    .Name("catGrid")
    .DataKeys(k => k.Add(o => o.cat_id))
    .Columns(columns =>  
    {
        columns.Bound(m => m.cat_id).ReadOnly(true).Visible(false);
        columns.Bound(m => m.tenant_id).ReadOnly(true).Visible(false);
        columns.Bound(m => m.date_added).ReadOnly(true).Visible(false);
        columns.Bound(m => m.category_name).Title("Category Name").Width(350);
        columns.Bound(m => m.status_cd).Title("Status").Width(150);
        columns.Command(c => 
        {
            c.Edit();
            c.Delete();
        }).Width(250);
    })
    .DataBinding(b => b.Ajax()
        .Select("AjaxGridSelect", "Category")
        .Insert("GridInsert", "Category")
        .Update("GridUpdate", "Category")
        .Delete("GridDelete", "Category")
    )
    .ToolBar(t => 
    {
        t.Insert();
    })
    .Pageable(paging => paging.PageSize(20)
        .Style(GridPagerStyles.NextPreviousAndDropDown)
        .Position(GridPagerPosition.Both)
    )
    .Sortable()
    .Filterable()
  )
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top