I've been fighting with this issue for hours and hours now and I'm about ready to throw Rad controls out the window, it's so counter-intuitive.
I have a Radgrid called MyGroupsRadGrid01. This grid displays a list of groups I'm in. When I click on the Edit command of one of the rows, it displays the details of the group as well as a RadGrid of the other members in the group called GroupMembersRadGrid all within a FormTemplate. I want to be able to add or delete an entry in GroupMembersRadGrid using GroupMemberRadGrid_DeleteCommand() and GroupMemberRadGrid_InsertCommand(). I tried using GroupMemberRadGrid_NeedDataSource() but the method itself cannot find GroupMemberRadGrid. I then tried populating GroupMemberRadGrid within MyGroupsRadGrid01_ItemDataBound but after deleting an entry, the GroupMemberRadGrid showed up as empty (which seems to me necessitate's the GroupMemberRadGrid_NeedDataSource() that I can't get to work.
It's 9:00pm and I've been working on this since noon. I can't fight with this all night and it's due in 11 hours. I need help.
I have a Radgrid called MyGroupsRadGrid01. This grid displays a list of groups I'm in. When I click on the Edit command of one of the rows, it displays the details of the group as well as a RadGrid of the other members in the group called GroupMembersRadGrid all within a FormTemplate. I want to be able to add or delete an entry in GroupMembersRadGrid using GroupMemberRadGrid_DeleteCommand() and GroupMemberRadGrid_InsertCommand(). I tried using GroupMemberRadGrid_NeedDataSource() but the method itself cannot find GroupMemberRadGrid. I then tried populating GroupMemberRadGrid within MyGroupsRadGrid01_ItemDataBound but after deleting an entry, the GroupMemberRadGrid showed up as empty (which seems to me necessitate's the GroupMemberRadGrid_NeedDataSource() that I can't get to work.
<
telerik:RadGrid
ID
=
"MyGroupsRadGrid01"
runat
=
"server"
OnNeedDataSource
=
"MyGroupsRadGrid01_NeedDataSource"
AutoGenerateColumns
=
"false"
AutoPostBackOnFilter
=
"true"
OnUpdateCommand
=
"MyGroupsRadGrid01_UpdateCommand"
OnItemDataBound
=
"MyGroupsRadGrid01_ItemDataBound"
AllowSorting
=
"true"
AllowAutomaticUpdates
=
"True"
AllowAutomaticInserts
=
"True"
OnEditCommand
=
"MyGroupsRadGrid01_EditCommand"
AllowFilteringByColumn
=
"false"
MasterTableView-CommandItemDisplay
=
"Top"
>
<
MasterTableView
DataKeyNames
=
"BWGroupID"
>
<
EditFormSettings
EditFormType
=
"Template"
>
<
FormTemplate
>
<
table
id
=
"Table1"
style
=
"margin-left: 50px;"
width
=
"100%"
cellspacing
=
"2"
cellpadding
=
"1"
border
=
"0"
rules
=
"none"
style
=
"border-collapse: collapse;"
>
<
tr
>
<
td
valign
=
"top"
>
<
table
id
=
"Table2"
cellspacing
=
"2"
cellpadding
=
"1"
border
=
"0"
rules
=
"none"
style
=
"border-collapse: collapse;"
>
<
tr
id
=
"BWGroupIDRow"
runat
=
"server"
>
<
td
>BW Group ID </
td
>
<
td
><
asp:Label
ID
=
"BWGroupIDLabel"
runat
=
"server"
Text='<%# Bind("BWGroupID") %>' /></
td
>
</
tr
>
<
tr
id
=
"BWGroupNameRow"
runat
=
"server"
>
<
td
>BW Group Name </
td
>
<
td
><
asp:Label
ID
=
"Label5"
runat
=
"server"
Text='<%# Bind("BWGroupName") %>' /></
td
>
</
tr
>
<
tr
id
=
"BWUserIDRow"
runat
=
"server"
>
<
td
>BW User ID Owner </
td
>
<
td
><
asp:Label
ID
=
"Label6"
runat
=
"server"
Text='<%# Bind("BWUserOwner.BWUserID") %>' /></
td
>
</
tr
>
<
tr
id
=
"DisplayNameRow"
runat
=
"server"
>
<
td
>BW User Owner </
td
>
<
td
><
asp:Label
ID
=
"Label7"
runat
=
"server"
Text='<%# Bind("BWUserOwner.DisplayName") %>' /></
td
>
</
tr
>
<
tr
id
=
"IsActive"
runat
=
"server"
>
<
td
></
td
>
<
td
><
asp:CheckBox
ID
=
"DeactivateCheckBox"
runat
=
"server"
Text
=
"Deactivate"
/></
td
>
</
tr
>
<
tr
>
<
td
align
=
"center"
colspan
=
"2"
><
br
/>
<
asp:Button
ID
=
"btnUpdate"
Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>'
runat="server" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>'></
asp:Button
>
<
asp:Button
ID
=
"btnCancel"
Text
=
"Cancel"
runat
=
"server"
CausesValidation
=
"False"
CommandName
=
"Cancel"
></
asp:Button
>
</
td
>
</
tr
>
</
table
>
</
td
>
<
td
valign
=
"top"
>
<
table
id
=
"Table3"
style
=
"margin-left: 5px;"
cellspacing
=
"2"
cellpadding
=
"1"
border
=
"0"
rules
=
"none"
style
=
"border-collapse: collapse;"
>
<
tr
><
td
><
h4
>Group Members:</
h4
></
td
></
tr
>
<
tr
>
<
td
>
<
telerik:RadGrid
ID
=
"GroupMemberRadGrid"
runat
=
"server"
width
=
"100%"
AllowAutomaticUpdates
=
"True"
AllowAutomaticInserts
=
"True"
AllowAutomaticDeletes
=
"true"
OnDeleteCommand
=
"GroupMemberRadGrid_DeleteCommand"
OnNeedDataSource
=
"GroupMemberRadGrid_NeedDataSource"
AutoPostBackOnFilter
=
"true"
OnUpdateCommand
=
"GroupMemberRadGrid_UpdateCommand"
>
<
MasterTableView
AutoGenerateColumns
=
"False"
DataKeyNames
=
"BWUserId"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"BWGroupId"
DataType
=
"System.Int32"
HeaderText
=
"Group ID"
ReadOnly
=
"True"
SortExpression
=
"BWGroupId"
UniqueName
=
"BWGroupId"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"BWUserId"
DataType
=
"System.Int32"
HeaderText
=
"User ID"
ReadOnly
=
"True"
SortExpression
=
"BWUserId"
UniqueName
=
"BWUserId"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"DisplayName"
HeaderText
=
"Name"
SortExpression
=
"DisplayName"
UniqueName
=
"DisplayName"
></
telerik:GridBoundColumn
>
<
telerik:GridButtonColumn
Text
=
"Delete"
CommandName
=
"Delete"
ButtonType
=
"ImageButton"
/>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
</
td
>
</
tr
>
</
table
>
</
td
>
</
tr
>
</
table
>
<
br
/>
</
FormTemplate
>
</
EditFormSettings
>
<
Columns
>
<
telerik:GridEditCommandColumn
ButtonType
=
"LinkButton"
EditText
=
"View/Edit"
UniqueName
=
"EditCommandColumn"
></
telerik:GridEditCommandColumn
>
<
telerik:GridBoundColumn
UniqueName
=
"BWGroupID"
DataField
=
"BWGroupID"
HeaderText
=
"BW Group ID"
SortExpression
=
"BWGroupID"
FilterControlWidth
=
"150px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"BWGroupName"
HeaderText
=
"BW Group Name"
ReadOnly
=
"true"
SortExpression
=
"BWGroupName"
FilterControlWidth
=
"150px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"BWUserOwner.BWUserID"
HeaderText
=
"BW User ID Owner"
SortExpression
=
"BWUserOwner.BWUserID"
FilterControlWidth
=
"50px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
></
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"BWUserOwner.DisplayName"
HeaderText
=
"BW User Owner"
SortExpression
=
"BWUserOwner.DisplayName"
FilterControlWidth
=
"50px"
AutoPostBackOnFilter
=
"true"
CurrentFilterFunction
=
"Contains"
></
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
protected void MyGroupsRadGrid01_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
GridEditableItem editedItem = e.Item as GridEditableItem;
Label BWGroupID = editedItem.FindControl("BWGroupIDLabel") as Label;
int ParseBWGroupID = -1; int.TryParse(BWGroupID.Text, out ParseBWGroupID);
if (ParseBWGroupID <
1
)
return;
BWGroupUsers
usersInGroup
=
new
BWGroupUsers();
usersInGroup.GetActiveBWUsersByGroupID(ParseBWGroupID);
RadGrid
GroupMemberRadGrid
=
new
RadGrid();
GroupMemberRadGrid = (RadGrid)e.Item.FindControl("GroupMemberRadGrid");
ViewState["BWGroupID"] = ParseBWGroupID;
//
GroupMemberRadGrid.DataSource
=
usersInGroup
.BWGroupUsersList.OrderBy(u => u.DisplayName);
//GroupMemberRadGrid.DataBind();
}
}
protected void GroupMemberRadGrid_DeleteCommand(object sender, GridCommandEventArgs e)
{
if (e.Item is GridDataItem && e.CommandName == "Delete")
{
GridDataItem item = (GridDataItem)e.Item;
int parseGroupId = -1; int.TryParse(item["BWGroupId"].Text.ToString(), out parseGroupId);
int parseUserId = -1; int.TryParse(item["BWUserId"].Text.ToString(), out parseUserId);
BWGroupUser selectedGroupUser = new BWGroupUser();
//selectedGroupUser.DeleteBWGroupUser(parseGroupId, parseUserId);
}
}
protected void GroupMemberRadGrid_NeedDataSource(object sender, GridNeedDataSourceEventArgs e)
{
GroupMemberRadGrid.DataSource = GroupMemberDataSource().BWUserList; //Doesn't find this!
}
private BWUsers GroupMemberDataSource()
{
BWUsers allBWUsers = new BWUsers();
if (ViewState["BWGroupID"] != null && ViewState["BWGroupID"].ToString().Length > 0)
{
int ParseBWGroupID = -1; int.TryParse(ViewState["BWGroupID"].ToString(), out ParseBWGroupID);
allBWUsers.GetActiveBWUsersByGroupID(ParseBWGroupID);
return allBWUsers;
}
return allBWUsers;
}
It's 9:00pm and I've been working on this since noon. I can't fight with this all night and it's due in 11 hours. I need help.