我正在尝试将不同的模板传递给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
部分。有什么建议吗?
......我也愿意以其他方式处理这件事。
答案 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>
您可以修改这些功能,使字段按您的需要运行
不幸的是,这要求您的模板全部存在于一个文件中,并要求您定义哪些字段对每个不同的事件采用哪种方式
我希望这有帮助!