用于在Telerik网格上添加数据和编辑数据的不同模板

时间:2012-04-24 21:30:07

标签: vb.net telerik telerik-grid

我正在尝试将不同的模板传递给Telerik Grid,具体取决于是否按下了添加按钮或编辑按钮(创建时:要填充的几个字段。现有:添加按钮:要填充的一些额外字段,编辑按钮:大多数字段是只读的,新字段是填充的。

Dim myGrid = Html.Telerik().Grid(Of SomeModel) _
.Name("myGrid")

    If Model.Action = AddNewData Then
        myGrid.Editable(Sub(editing) _  
        editing.Enabled(True).Mode(GridEditMode.PopUp).DisplayDeleteConfirmation(False) _
        .TemplateName("AddTemplate"))

    ElseIf Model.Action = EditOldData Then
      if "gridBoutonPushed = Add" then
        grille.Editable(Sub(editing) _
        editing.Enabled(True).Mode(GridEditMode.PopUp).DisplayDeleteConfirmation(False) _
        .TemplateName("EditTemplateNew"))
      else 'edit button was pushed
        grille.Editable(Sub(editing) _
        editing.Enabled(True).Mode(GridEditMode.PopUp).DisplayDeleteConfirmation(False) _
        .TemplateName("EditTemplateOld"))
      end if
    End If

'generate the add button
myGrid.ToolBar(Sub(c) c.Template(" <a href='#' class='t-button t-button-icontext t-grid-add'>" &
                    "<span style='margin-left: 0pt;' class='t-icon t-add'></span>Add stuff</a>"))

我不知道如何做if "gridBoutonPushed = Add" then部分。有什么建议吗? ......我也愿意以其他方式处理这件事。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,并提出了使用javascript和Telerik的动作处理程序的解决方法 首先,我将其添加到Grid的属性集中:

.ClientEvents(Function(events) events.OnEdit("onEditUsers"))

将处理程序指向此函数,然后在网格代码之外:

<script type="text/javascript">
function onEditUsers(e) {

           var popup = $("#" + e.currentTarget.id + "PopUp");
           var popupDataWin = popup.data("tWindow");


           if (e.mode == "insert") {
               //for creating
               popupDataWin.title("Add new User");

           }
           else {
               //for editing
               popupDataWin.title("Edit Customer");

               // Hide fields from the pop-up.
               $(e.form).find("#UnwantedField1").closest(".editor-field").prev().andSelf().hide();
               $(e.form).find("#UnwantedField2").closest(".editor-field").prev().andSelf().hide();
           }
       }
   </script>

您可以修改这些功能,使字段按您的需要运行

不幸的是,这要求您的模板全部存在于一个文件中,并要求您定义哪些字段对每个不同的事件采用哪种方式

我希望这有帮助!