Sharepoint 2010: Open Modal Dialog from EditControlBlock
参考资料:
Visual Studio 2010 makes it really easy to create and upload Features. Using these new Features makes it easy to add actions to menus. One of these menus is the Edit Control Block (ECB) or the context menu which appears over an item:
Normally we’d use a simple UrlAction and fill the Url with the redirect. However in this case to call the modal, we can do the following:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction Id="ReportConcern"
RegistrationType="ContentType"
RegistrationId="0x0101009b56d20860764b8090e63b320d78f98c"
Location="EditControlBlock"
Sequence="107"
Title="Report Concern"
Description="To report a concern on this item">
<UrlAction Url="javascript:
function CallDETCustomDialog(dialogResult, returnValue)
{
SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);
}
var options = {
url: '{SiteUrl}' + '/_layouts/ReportConcern/ReportConcern.aspx?List={ListId}&ID={ItemId}',
title: 'Report Concern',
allowMaximize: false,
showClose: true,
width: 500,
height: 300,
dialogReturnValueCallback: CallDETCustomDialog
};
SP.UI.ModalDialog.showModalDialog(options);" />
</CustomAction>
</Elements>
<CustomAction Id="ReportConcern"
RegistrationType="ContentType"
RegistrationId="0x0101009b56d20860764b8090e63b320d78f98c"
Location="EditControlBlock"
Sequence="107"
Title="Report Concern"
Description="To report a concern on this item">
<UrlAction Url="javascript:
function CallDETCustomDialog(dialogResult, returnValue)
{
SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);
}
var options = {
url: '{SiteUrl}' + '/_layouts/ReportConcern/ReportConcern.aspx?List={ListId}&ID={ItemId}',
title: 'Report Concern',
allowMaximize: false,
showClose: true,
width: 500,
height: 300,
dialogReturnValueCallback: CallDETCustomDialog
};
SP.UI.ModalDialog.showModalDialog(options);" />
</CustomAction>
</Elements>