2013-03-01 2 views
7

के लिए संपादन को अक्षम करने के दौरान, क्या केवल केंडो ग्रिड में नए रिकॉर्ड डालने में सक्षम होना संभव है, लेकिन संपादन रिकॉर्ड अक्षम करें?निर्माण को सक्षम करने के लिए कैसे करें, जबकि केंडो ग्रिड

सबसे अच्छा मैं कर सकता थाडेटाबाउंड जावास्क्रिप्ट में "संपादन" बटन को हटा दें। मैंने Editable(ed => ed.Enabled(false)) सेटिंग करने का प्रयास किया लेकिन मुझे रनटाइम के दौरान त्रुटियां मिलती हैं।

@(Html.Kendo().Grid(Model)  
    .Name("Grid" + guid) 
    .HtmlAttributes(new { style = "margin:20px" }) 
    .Columns(columns => 
    { 
     columns.Bound(p => p.Id).Hidden(true); 
     //a few more columns 

     columns.Command(command => 
      { 
       command.Edit().Text(Resources.KendoEdit).UpdateText(Resources.KendoUpdateText).CancelText(Resources.KendoCancelText); 
       command.Destroy().Text(Resources.KendoDestroy); 
      }).Title(Resources.KendoCommands).Width(180); 

    }) 
    .ToolBar(toolbar => toolbar.Create().Text(Resources.KendoToolbarCreate)) 
    .Editable(editable => editable 
     //.Enabled(false) 
     .Mode(GridEditMode.InLine) 
     .DisplayDeleteConfirmation(false) 
    ) 
    .DataSource(dataSource => dataSource 
     .Ajax() 
     .ServerOperation(false) 
     .Events(events => events.Sync("sync").Error("error")) 
     .Model(mod => mod 
      .Id(p => p.Id) 
     ) 
     .Model(mod => mod 
      .Field(p => p.OldRoleId).Editable(false) 
     ) 

     .Read(read => read.Action("ChangeRole_Read", "ChangeRole")) 
     .Create(update => update.Action("ChangeRole_Create", "ChangeRole")) 
     .Update(update => update.Action("ChangeRole_Update", "ChangeRole")) 
     .Destroy(update => update.Action("ChangeRole_Destroy", "ChangeRole")) 
    ) 
    .Sortable() 
    .Filterable(filterable => filterable 
     .Extra(true) 
     .Operators(operators => operators 
      .ForString(str => str.Clear() 
       .StartsWith(Resources.KendoFilterStartsWith) 
       .IsEqualTo(Resources.KendoFilterIsEqualTo) 
       .IsNotEqualTo(Resources.KendoFilterIsNotEqualTo) 
       .Contains(Resources.KendoFilterContains) 
       .DoesNotContain(Resources.KendoFilterDoesNotContain) 
       .EndsWith(Resources.KendoFilterEndsWith) 
      ) 
     ) 
     .Messages(mess => mess 
      .Info(Resources.KendoFilterMsgInfo) 
      .And(Resources.KendoFilterMsgAnd) 
      .Or(Resources.KendoFilterMsgOr) 
      .Filter(Resources.KendoFilterMsgFilter) 
      .Clear(Resources.KendoFilterMsgClear) 
     ) 
    ) 
    .Scrollable() 
    .Pageable(pg => pg 
     .Refresh(true) 
     .Messages(ms => ms 
      .First(Resources.KendoPageableFirst) 
      .Last(Resources.KendoPageableLast) 
      .Next(Resources.KendoPageableNext) 
      .Previous(Resources.KendoPageablePrevious) 
      .Empty(Resources.KendoPageableEmpty) 
      .Display(Resources.KendoPageableDisplay) 
     ) 
    ) 
    .Events(ev => ev 
     .Edit("edit") 
     .Save("save") 
     .DataBound("dataBound") 
    ) 
) 
+0

क्या आप ग्रिड को कॉन्फ़िगर करने के तरीके के लिए कोड नमूना प्रदान कर सकते हैं? आपको क्या त्रुटियां मिल रही हैं? – nukefusion

+0

आप किस संपादन मोड का उपयोग करते हैं? आपके सेटअप के आधार पर अलग-अलग दृष्टिकोण हैं। (यह क्लिक करने योग्य नहीं है), '.Editable (संपादन योग्य => संपादन योग्य .Enabled (गलत) .Mode (GridEditMode.InLine) .DisplayDeleteConfirmation (गलत) )' यह संपादन अक्षम कर देता है: –

+0

यह हिस्सा है कि समस्याग्रस्त है लेकिन: "संपादन" बटन को नहीं हटाता है। मैं "संपादन" बटन को हटाना चाहता हूं। जैसा कि मैंने कहा था, सबसे अच्छा मैं जेक्यू के साथ इसे हटाना था। अधिक महत्वपूर्ण बात यह है कि जब मैं नया रिकॉर्ड बनाने की कोशिश करता हूं, तो मैं 'सक्षम (झूठा) 'छोड़ देता हूं, मुझे यह त्रुटि मिलती है: यह अनुरोध अवरुद्ध कर दिया गया है क्योंकि किसी अनुरोध को जीईटी अनुरोध में उपयोग किए जाने पर संवेदनशील जानकारी को तृतीय पक्ष वेबसाइटों पर प्रकट किया जा सकता है ... –

उत्तर

1

यह कोड आप ग्रिड प्रारंभ करने में उपयोग कर रहे हैं बिना जवाब देना मुश्किल है, लेकिन मैं एक शॉट लेने के लिए जा रहा हूँ। ,

.Columns(columns => 
     { 
      columns.Bound(m => m.Whatever); 
      columns.Command(command => 
      { 
       command.Edit(); 
       command.Destroy(); 
      }); 
     }) 

इसलिए यदि आप अपने स्तंभ परिभाषा में ऐसा लगता है कि यह या कुछ और है को दूर करने में यह से छुटकारा मिल जाएगा: अगर मैं सही ढंग से याद आप स्पष्ट रूप से एक कॉलम संपादित के साथ इतना की तरह/बटन जोड़ने नष्ट करने के लिए केंडो बताने के लिए है संपादित/हटाएं लेकिन ग्रिड के शीर्ष पट्टी में जोड़ें बटन रखें।

यदि ऐसा नहीं है कि आपका संपादन/हटाएं बटन सेट अप किए गए हैं, तो यदि आप ग्रिड कोड पोस्ट करते हैं तो मुझे अपने उत्तर को संशोधित करने में खुशी होगी।

+0

हां इस प्रकार मैं अपना ग्रिड शुरू करता हूं। लेकिन, अगर मैं 'आदेश हटा देता हूं।संपादित करें(); 'जब मैं नया रिकॉर्ड जोड़ने पर क्लिक करता हूं तो मुझे अनुरोध प्राप्त करने के बारे में एक त्रुटि मिलती है। ठीक है, मैंने अपने नियंत्रक में 'JsonRequestBehavior.AllowGet' रखा है (जो मैं वास्तव में नहीं चाहता लेकिन अगर कोई अन्य तरीका नहीं है तो यह ठीक है) और अब कोई त्रुटि नहीं है, लेकिन अब "सेव" और "कैंसल" बटन नहीं हैं एक नया रिकॉर्ड जोड़ते समय मौजूद है, केवल "हटाएं" बटन है। –

+0

मुझे खेद है, लेकिन जब तक आप अपना संपूर्ण ग्रिड कोड पोस्ट नहीं करते हैं, जैसा कि हमने पूछा है कि मैं अब और मदद नहीं कर सकता। मुझे समस्या को डुप्लिकेट करने के लिए कुछ तरीका चाहिए। – jebar8

+0

मैंने अपना ग्रिड कोड –

0

इस सुधार में नीचे टिप्पणी की कतार में है:

.Columns(cols => 
{ 

    cols.Bound(c => c.name).Width(300); 
    cols.Bound(c => c.dateBuilt); 

    cols.Command(cmd => 
    { 
     cmd.Select(); 
     //cmd.Edit();//This is the part to comment out if u want to disable edit 
     cmd.Destroy(); 
    }); 
}) 
+3

tnx जोड़ा है लेकिन: हाँ यह संपादन अक्षम करता है, लेकिन डालने में अक्षम भी करता है। अब जब मैं एक नया रिकॉर्ड डालने का प्रयास करता हूं तो मेरे पास सहेजें और रद्द करें बटन नहीं हैं, केवल हटाएं बटन। इसके अलावा 'cmd.Select();' यह कुछ भी नहीं करता है, बस एक बटन जोड़ता है जिसकी मुझे आवश्यकता नहीं है जो कुछ भी नहीं करता है। :( –

0

मैं एक ही समस्या थी।

मेरे पास अभी तक एकमात्र काम पॉपअप संपादन का उपयोग करना है और ग्रिड से संपादन कमांड बटन को निकालना है। अब यह सिर्फ संपादक टेम्पलेट को अनुकूलित करने की बात है।

@(Html.Kendo().Grid<xxxxViewModel>() 
     .Name("xxxx") 
     .Columns(columns => 
     {    
      ......... 

      columns.Command(command => { command.Destroy().Text("Del"); }).Width(80); 
     }) 
     .ToolBar(commands => { 
      commands.Create(); 
     }) 
     .Pageable() 
     .Editable(editable => editable.Mode(GridEditMode.PopUp)) 
     .Sortable() 
     .Scrollable() 
     .Filterable()  
     .Events(events => { 
      //events.Save("xxxx"); 
     }) 
     .HtmlAttributes(new { style = "height:700px" })   
     .DataSource(dataSource => dataSource 
      .Ajax() 
      .Events(events => events.Error("error")) 
      .Model(model => 
      { 
       model.Id(p => p.xxxx); 
       model.Field(p => p.xxxx).Editable(false); 
      }) 
      .Create(create => create.Action("xxxx", "xxxx")) 
      .Read(read => read.Action("xxxx", "xxxx"))    
      .Destroy(destroy => destroy.Action("xxxx", "xxxx"))     
     ) 
) 
2

करने के लिए यह कोई नहीं करने के लिए संपादित करें बटन की दृश्यता सेट करने के लिए किया जाएगा एक ही रास्ता:

<style> 
    #yourgridid .k-grid-edit 
    { 
     display: none; 
    } 
</style> 
+0

नौकरी करने वाला एकमात्र उत्तर। धन्यवाद। – Tech0

0

मैं भी लगता है कि दूसरों की तरह का सुझाव दिया है आप

command.Edit() 
हटाने की जरूरत

अपने पंक्ति से और एक बटन को बचाने के लिए, आप के बगल में उपकरण पट्टी में जोड़ सकते हैं

toolbar.Save() 
का उपयोग कर बनाने के

चीयर्स, समेह

संबंधित मुद्दे