[ASP.NET][Telerik] 使用 CommandArgument 由前端取得 RadGrid 的某一欄位資料

[ASP.NET][Telerik] 使用 CommandArgument 由前端取得 RadGrid 的某一欄位資料

情境:

在 RadGrid 的某一列按下按鈕,然後取得那一列的某一欄位的資料,如下圖

image

問題:

按下按鈕後無法得知哪一列的按鈕被按下

RadGrid 有堤供 get_selectedItems(),可以讓我知道哪一列被選擇,但這要先在畫面點一下才能拿的到資料,這並不符合我的使用情境


    var grid = $find("<%= RadGrid1.ClientID %>");
    var masterTableView = grid.get_masterTableView();
    var orderId = masterTableView.get_selectedItems()[0].getDataKeyValue("OrderID");
    var orderid = masterTableView.getCellByColumnUniqueName(masterTableView.get_selectedItems()[0], "OrderID").innerHTML;
    console.log(orderid);
    console.log(orderId);
    return orderId;
}

try 了好久,都找不到可以由前端直接拿到 RowIndex 的方法

PS.後端可以

 

解法:

使用 CommandArgument

@.aspx


    <HeaderStyle Width="2%"></HeaderStyle>
    <ItemStyle CssClass="tac" />
    <ItemTemplate>
        <telerik:RadButton ID="ReadRecord_RadButton" runat="server"
            ToolTip="讀取"
            CssClass="ReadCommand"
            CommandName="ReadCommand"
            OnClientClicking="ReadCommand"
            CommandArgument='<%# Item.OrderID +","+ Item.CustomerID %>'>
            <Image EnableImageButton="true" />
        </telerik:RadButton>
    </ItemTemplate>
</telerik:GridTemplateColumn>

 

 

 

 

 

@javascript

前端透過 args._commandArgument 屬性拿到按鈕傳來的參數


    var orderid = GetSelectOrderId();
    var orderId = args._commandArgument;
    var msg = String.format("確定讀取:{0}?", orderId);
    RadControlOfConfirmation(sender, args, msg, "提示");
}

 

@cs

後端也能收到前端傳來的參數


{
    switch (e.CommandName)
    {
        case "ReadCommand":

            var args = e.CommandArgument;
            var msg = string.Format("朕知道,你傳了參數:{0} 了", args);
            this.RadAjaxManager1.Alert(msg);
            break;
    }
}

 

完整前端程式碼

https://dotblogsamples.codeplex.com/SourceControl/latest#Simple.RadGridSortAndPaging/Simple.RadGridSortAndPaging/Views/RadGridCommandArgument.aspx

 

完整後端程式碼

https://dotblogsamples.codeplex.com/SourceControl/latest#Simple.RadGridSortAndPaging/Simple.RadGridSortAndPaging/Views/RadGridCommandArgument.aspx.cs

 


 

本文出自:http://www.dotblogs.com.tw/yc421206/archive/2015/08/20/153177.aspx

 

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo