【发布时间】:2011-11-01 21:00:40
【问题描述】:
我有一个类,它定义了一个层次化的 RadGrid,我将在应用程序范围内使用它。这个网格有很多列,所以这对我来说是最好的实现,因为我将覆盖基于网格的 om 实现的特定特征。
网格将根据用户的访问级别以不同的方式运行。在“基本用户级别”上,他们将在父网格上有一个添加新项目/编辑项目,在子网格上有一个编辑、拒绝(删除)、批准(更新)
下一个级别将是“审批者”角色。他们不会在父网格上添加新项目/编辑项目,并且只会在子网格上具有拒绝(编辑)。用户在拒绝项目时将在此角色中执行的编辑操作是,他们将需要通过单击拒绝按钮时将启动的用户控件输入评论。我遇到的问题是,当使用 GridButtonColumn 作为触发事件时,没有为 DetailTableView.EditFormSettings 显示自定义用户控件。有什么想法吗? TIA
private void SubmittedBatchesRadGrid_ItemDataBound(object sender, GridItemEventArgs e)
{
GridDataItem _dataItem = e.Item as GridDataItem;
if (_dataItem == null) return;
if (e.Item.OwnerTableView.Name == "SubmittedBatchesRadGrid_ChildGrid")
{
SetChildGridCommandColumns(sender, e);
return;
}
if (_dataItem.KeyValues == "{}") { return; }
SetMasterGridCommandColumns(sender, e, _dataItem);
}
private static void SetChildGridCommandColumns(object sender, GridItemEventArgs e)
{
const string _jqueryCode = "if(!$find('{0}').confirm('{1}', event, '{2}'))return false;";
const string _confirmText = "<p>Rejecting this adjustment will mean that you will have to also reject the batch when you are done processing these items.</p><p>Are you sure you want to reject this adjustment?</p>";
((ImageButton)(((GridEditableItem)e.Item)["PolicyEditRecord"].Controls[0])).ImageUrl = "/controls/styles/images/editpencil.png";
ImageButton _btnReject = (ImageButton)((GridDataItem)e.Item)["DeleteTransaction"].Controls[0];
_btnReject.CommandName = "Update";
_btnReject.ImageUrl = "/controls/styles/images/decline.png";
_btnReject.ToolTip = "Reject this item";
//_btnReject.Attributes["onclick"] = string.Format(_jqueryCode, ((Control)sender).ClientID, _confirmText, "Reject Adjustment");
}
private void SubmittedBatchesRadGrid_DetailTableDataBind(object sender, GridDetailTableDataBindEventArgs e)
{
e.DetailTableView.EditFormSettings.EditFormType = GridEditFormType.WebUserControl;
e.DetailTableView.EditFormSettings.UserControlName = "/Controls/RejectedAdjustmentComment.ascx";
e.DetailTableView.EditMode = GridEditMode.PopUp;
e.DetailTableView.CommandItemSettings.ShowAddNewRecordButton = false;
GridDataItem _dataItem = e.DetailTableView.ParentItem;
e.DetailTableView.DataSource = AdjustmentAPI.GetAdjustmentsByBatch(Convert.ToInt32(_dataItem.GetDataKeyValue("BatchID").ToString()), PolicyClaimManualAdjustmentCode);
}
【问题讨论】:
标签: c# asp.net ajax telerik radgrid