2011-10-17 12 views
1

ajaxified RadGridでは、ポストバック(バイパスAjax)を発生させ、いくつかのバックエンドコードを実行する2つのボタンが必要です。私は、ポストバックを無効にするには使用していJavascriptの機能ajaxified RadGridのGridTemplateColumn内のimagebuttonコントロールのajaxを無効にする

<telerik:GridTemplateColumn HeaderText="Actions"> 
    <ItemTemplate> 
     <asp:ImageButton ID="btnEdit" runat="server" OnClientClick="realPostBack();" ImageUrl="~/images/icon_edit.png" style="display: inline-block" ToolTip="Edit" CommandName="fbEdit" /> 
    </ItemTemplate> 
</telerik:GridTemplateColumn> 

<script type="text/javascript"> 
    function realPostBack(eventTarget, eventArgument) { 
    $find("<%= RadAjaxPanel1.ClientID %>").__doPostBack(eventTarget, eventArgument); 
    } 

ここで...私がこれまで持っているもの(簡単のため1を示す)

ボタンです

コードビハインド実行したい:

protected void RadGrid1_ItemCommand(object sender, GridCommandEventArgs e) 
{ 
if (e.CommandName == "fbEdit") 
    { 
    //grab variables from row's cells 
    string userID = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["UserID"]; 
    string userName= e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["UserName"]; 
    string userEmail = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["UserEmail"]; 

    //DO SOME PROCESSING STUFF 

    } 
    if(e.CommandName == "fbDelete") 
    { 
     //delete record 
    } 
    } 

ポストバックは本当に起こりますが、私のコードは決して起動しません。イベントはグリッドに結び付けられているので、ボタンには表示されませんが、ボタンをクリックした行のセルの値をキャプチャする必要があるため、この方法を使用しました。

ボタンonClickイベントを使用するためにこれを再作成することはできますが、それでもこれらの値を取得する必要があります。

誰でも手助けできますか?

答えて

1

RadGridのOnItemCommandイベントでコードを実行しようとしているものの外観から、少し複雑すぎるように思えるかもしれません。 GridButtonColumnを、使用しないのはなぜのImageButtonButtonTypeを設定し、あなたが上記の場合と同じのCommandNameを設定しますか? OnItemCommandイベントを購読している間は、これはすべてが呼び出されるようにし、e.CommandName == "fbEdit"の条件付きチェックもヒットする必要があります。

このRadGrid固有の列の使用方法の例については、同様の方法でthis demoを参照してください。

1

PageLoadイベントにコードを追加する必要があります。

if (!IsPostBack) 
{ 
    RadGridName.Rebind(); 
} 

thatsです。

関連する問題