2017-05-12 8 views
0

クリックすると、剣道のグリッド行のコマンドボタンのテキストを更新しようとしています。次のように ボタンがある:クリック/クリックしてコマンドボタンのテキストを取得します。

columns.Command(command => command.Custom("View ARs").Click("showAnnReviewByPlan")); 

その部分的なビューをロードし、私はボタンをもう一度クリックすると、その後非表示したいのですが、別のサブグリッドを表示するjavascriptのメソッドを呼び出します。

$(".k-grid-ViewARs").html("<span class=' '></span>Hide ARs"); 

しかし、私は、これはすべての行を更新すると思う、とボタンが存在するだけでなく、行 - 私は、テキストを使って、「隠す」を言うために更新することができます。 もう一度クリックすると元に戻すことができるように、テキストを取得する方法を理解できません。おそらくシンプルだけど、私を逃してしまう。

更新

var buttonText = $(".k-grid-ViewARs").html(); 

    if (buttonText.indexOf("Hide ARs") !== -1) 

その部分はOKですが、私は私がクリックした特定の行のボタンを取得する必要があるので、これは、私がボタンのテキストを取得し、それを切り替えることができますに。 アイデア

答えて

0

解決済み。説明については、コードのコメントを参照してください。

<!-- language: lang-js --> 
function showAnnReviewByPlan(e) 
{ 
    // Set text to 'Hide AR's' 
    var buttonText = $(e.currentTarget).closest("tr").find(".k-grid-ViewARs").html(); // $(e.currentTarget).closest("tr").... gets specific row & element containing button text, in this case <a role="button" class="k-button k-button-icontext k-grid-ViewARs" 

    if (buttonText.indexOf("Hide ARs") !== -1) 
    { 
     $(e.currentTarget).closest("tr").find(".k-grid-ViewARs").html("<span class=' '></span>View ARs"); // toggles/sets specific row button text 

     // Hide #AnnReviewsByPlan <div> 
     $("#AnnReviewsByPlan").hide(); 
    } 
    else 
    { 
     $(e.currentTarget).closest("tr").find(".k-grid-ViewARs").html("<span class=' '></span>Hide ARs"); // toggles/sets specific row button text 

     // Make sure #AnnReviewsByPlan <div> is visible 
     $("#AnnReviewsByPlan").show(); 

     var dataItem = this.dataItem($(e.currentTarget).closest("tr")); 

     var id = dataItem.id; 

     $.ajax({ 
      type: "GET", 
      url: '/ManageCompanies/AnnualReviewsByPlan', 
      data: { id: id }, 
      success: function (data, textStatus, jqXHR) { 
       $('#AnnReviewsByPlan').html(data); 
      } 
     }); 
    } 
関連する問題