0

追加ボタンまたは編集ボタンが押されたかどうかに応じて、別のテンプレートを 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。助言がありますか?
... 私はこれに対処する他の方法にもオープンです。

4

1 に答える 1

0

同様の問題があり、javascript と Telerik のアクション ハンドラーを使用して回避策を考え出しました。まず、これをグリッドのプロパティ セットに追加しました。

.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>

これらの関数を変更して、必要に応じてフィールドを動作させることができる場合があります

残念ながら、これにはテンプレートがすべて 1 つのファイルに存在する必要があり、異なるイベントごとにどのフィールドがどのように動作するかを定義する必要があります。

これが役立つことを願っています!

于 2012-05-02T21:11:46.467 に答える