This is a migrated thread and some comments may be shown as answers.

[Solved] How to set CommandArgument for a dynamically added column in RadGrid

2 Answers 692 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Saqib
Top achievements
Rank 1
Saqib asked on 19 Jun 2009, 04:35 PM
I have a RadGrid which I am binding it to a DataSet in the C# code. I am also adding a column which is a RadButtonColumn dynamically on the Page Load event. My problem is that I cannot able to set the CommandArgument on that column from the values from one of the Columns in the DataSet.
Also using the GoogleLikeFiltering on it which is working fine.

Any help would be appreciated.

Here is my code:
ASCX:

<

radG:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" AllowPaging="True"  

 

AllowSorting="True" AllowFilteringByColumn="True" EnableAJAX="True" EnableAJAXLoadingTemplate="True"  

 

OnNeedDataSource="RadGrid1_NeedDataSource" OnColumnCreating="RadGrid1_ColumnCreating" OnItemCommand="RadGrid1_ItemCommand">  

 

<MasterTableView EditMode="InPlace" DataKeyNames="SubmitId" AllowFilteringByColumn="True" AllowMultiColumnSorting="true" />  

 

<PagerStyle Mode="NextPrevAndNumeric" />  

 

</radG:RadGrid>

C# code:

 

protected

void RadGrid1_NeedDataSource(object source, Telerik.WebControls.GridNeedDataSourceEventArgs e)  

{

ds = GetDataSet();  

 

this.RadGrid1.DataSource = ds;

}

 

 

protected void Page_Load(object sender, System.EventArgs e)

 

try  

 

 

if (!IsPostBack)

{

ds = GetDataSet(); 

 

this.RadGrid1.MasterTableView.Columns.Clear(); 

 

 

//Add Submit Id button to the Grid  

 

 

GridButtonColumn gridButtonColumn = new GridButtonColumn();  

RadGrid1.MasterTableView.Columns.Add(gridButtonColumn);

RadGrid1.MasterTableView.Columns.Add(

 

new GridButtonColumn());

 

gridButtonColumn.UniqueName =

"SubmitId";  

 

 

gridButtonColumn.DataTextField =

"SubmitId";  

 

 

gridButtonColumn.HeaderText =

"SubmitId";  

 

 

gridButtonColumn.DataType =

typeof(int);  

 

 

gridButtonColumn.SortExpression =

"SubmitId";  

 

 

gridButtonColumn.ShowSortIcon =

true;  

 

 

gridButtonColumn.CommandArgument = ds.Tables[0].Columns[

"SubmitId"].ToString();

 

 

 

gridButtonColumn.CommandName =

"processForm";  

 

 

 

 

foreach (DataColumn dataColumn in ds.Tables[0].Columns)

{

 

RadGrid.

MyCustomFilteringColumnCS gridColumn = new RadGrid.MyCustomFilteringColumnCS();  

 

 

 

 

this.RadGrid1.MasterTableView.Columns.Add(gridColumn);

 

gridColumn.DataField = dataColumn.ColumnName;

gridColumn.HeaderText = dataColumn.ColumnName;

}

}

}

 

 

catch (Exception ex)

{

lblMessage.Text =

"PageLoad() " + ex.Message;  

 

 

}

}

 

protected

void RadGrid1_ItemCommand(object source, Telerik.WebControls.GridCommandEventArgs e)  

 

 

 

try  

 

 

switch (e.CommandName)

 

case "Filter":

 

foreach (GridColumn column in e.Item.OwnerTableView.Columns)

{

column.CurrentFilterValue =

string.Empty;  

 

 

column.CurrentFilterFunction =

GridKnownFunction.NoFilter;  

 

 

 

break;  

}

 

 

case "processForm":

{

// e.CommandArgument returns "SubmitId"
// But does not get the value for SubmitId from the DataSet

 

 

break;

}

 

 

default:  

 

break;  

}

}

 

 

catch (Exception ex)  

{

lblMessage.Text =

"RadGrid1_ItemCommand() " + ex.Message;  

 

 

}

}

 

 

 

2 Answers, 1 is accepted

Sort by
0
Accepted
Princy
Top achievements
Rank 2
answered on 22 Jun 2009, 08:32 AM
Hi Saqib,

I gues you have bound the field "SubmitId" in radgrid datasource dataset, if so you can set the DataKeyNames of MasterTableView as "SubmitId" and then try the following code snippet to set the CommandArgument for GridButtonColumn.

CS:
 
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)  
{  
    if (e.Item is GridDataItem)  
    {  
        GridDataItem item = (GridDataItem)e.Item;  
        (item["SubmitId"].Controls[0] as LinkButton).CommandArgument = item.GetDataKeyValue("SubmitId").ToString();  
    }  

Thanks,
Princy.
0
Saqib
Top achievements
Rank 1
answered on 22 Jun 2009, 02:16 PM
This works!!! Thanks.
Tags
Grid
Asked by
Saqib
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Saqib
Top achievements
Rank 1
Share this question
or