2012-11-29 57 views
0

如何將下面的代碼從GridView更改爲RadGrid?下面是我的GridView的代碼:將GridView轉換爲RadGrid

protected void gv_Movie_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    //get the row number of the selected row 
    int rowNo = int.Parse(e.CommandArgument.ToString()); 
    //get the selected row 
    GridViewRow row = gv_Movie.Rows[rowNo]; 

    //Get movie ID, which is on the 1st column of the gridview 

    string movieID = row.Cells[0].Text; 
    if (e.CommandName == "Select") 
    { 
     Response.Redirect("MovieSelect.aspx?id=" + movieID); 
    } 
    else if (e.CommandName == "Update") 
    { 
     Response.Redirect("MovieUpdate.aspx?id=" + movieID); 
    } 
} 

我嘗試下面的代碼,並沒有在所有因e.CommandArgument工作。任何解決方案?

protected void RadGrid1_ItemCommand(object sender, Telerik.Web.UI.GridCommandEventArgs e) 
{ 
    int rowNo = int.Parse(e.CommandArgument.ToString()); 

    GridDataItem row = RadGrid1.Items[rowNo]; 

    string movieID = row.Cells[0].Text; 
    if (e.CommandName == "Select") 
    { 
     Response.Redirect("movieSelect.aspx?id=" + movieID); 
    } 
    else if (e.CommandName == "Delete") 
    { 
     Response.Redirect("movieUpdate.aspx?id=" + movieID); 
    } 
} 
+0

通過不工作,你是什麼意思?參數應該是一樣的......你還可以加入標記嗎? –

+0

GridView>編輯列>添加按鈕字段>沒有命令參數,但在RadGrid中>編輯列>添加網格按鈕列>有一個命令Arguement。 – user1861753

回答

2

代替

int rowNo = int.Parse(e.CommandArgument.ToString()); 
GridDataItem row = RadGrid1.Items[rowNo]; 

使用

GridDataItem row = e.Item as GridDataItem; 

Telerik的自動檢索當前行e.Item。其餘的應該是一樣的。

或更好的是,如果合適的話,嘗試利用DataKeyNames。在您的標記

所以,你會碰到這樣的:

<telerik:RadGrid id="grid" runat="server"> 
    <MasterTableView DataKeyNames="movieID"> 
     ..... 
    </MasterTableView> 
</telerik:RadGrid> 

然後,您可以retireve movieID這樣的:

var row = e.Item as GridDataItem; 
string movieID = row.GetDataKeyValue("movieID"); 
+0

我可以在C#中的代碼? – user1861753

+0

@ user1861753,它在c#中。 – RAS

+0

感謝您的幫助!它的工作完美(= – user1861753

相關問題