如何修改标准对话框表格sharepoint 2010的宽度

时间:2012-07-09 13:37:38

标签: css sharepoint styles modal-dialog list-definition

拜托,帮助我!

我需要修改标准对话框表格的宽度,以便将元素添加到库中。

如果我点击功能区按钮添加元素,则表单以width = 402px:

打开
<div class="ms-dlgContent" role="dialog" aria-labelledby="dialogTitleSpan"  tabindex="-1" style="z-index: 1505; display: block; width: 402px; height: 294px; left: 430px; top: 104px; "></div>

如果我在当前库的所有元素下单击按钮,则表单以width = 1032px:

打开
<div class="ms-dlgContent" role="dialog" aria-labelledby="dialogTitleSpan" tabindex="-1" style="z-index: 1505; display: block; width: 1032px; height: 267px; left: 115px; top: 273px; "></div>

我无法理解,在宽度= 402px的第二种情况下打开我需要做什么。

也许需要在Upload.aspx中输入一些代码? (此表单自动生成) 我想,这个页面打开用于创建新元素,因为我的列表定义的schema.xml包含以下代码:

<Forms>
  <Form Type="DisplayForm" SetupPath="pages\form.aspx" Url="Forms/DispForm.aspx" WebPartZoneID="Main" />
  <Form Type="EditForm" SetupPath="pages\form.aspx" Url="Forms/EditForm.aspx" WebPartZoneID="Main" />
  <Form Type="NewForm" Url="Forms/Upload.aspx" WebPartZoneID="Main" />
</Forms>

但是如果修改了Upload.aspx的这一部分(添加.ms-dglContent类),它对我没有帮助:

<asp:Content ContentPlaceHolderId="PlaceHolderBodyAreaClass" runat="server">
<style type="text/css">
.ms-bodyareaframe {
   padding: 8px;
   border: none;
}
.ms-dglContent {
   width:402px!important;
}
</style>
</asp:Content>

如果我修改css文件:

.ms-dglContent {width:402px!important;}

它修改所有对话框表单,但在我的情况下是不可接受的。

我会很感激任何帮助的尝试!

2 个答案:

答案 0 :(得分:2)

模态对话框div动态放入DOM。如果想要修改对话框维度,请尝试查找类似SP.UI.ModalDialog ...

的调用
var dialogCallbackToMainSite = function (dialogResult, returnValue) {

    if(returnValue == 'someValue') {
    }
};

var option = {
    url:record.data.url,
    title:'Task',
    allowMaximize:false,
    showClose:false,
    autoSize:false,

    width: 800,
    height: 600,

    dialogReturnValueCallback:dialogCallbackToMainSite
};

SP.UI.ModalDialog.showModalDialog(option);

BTW如果您需要垂直居中对话框,当色带滚动页面且其静态位置被禁用时请遵循此解决方案http://generation12.wordpress.com/2011/10/25/floating-the-sp-ui-modaldialog/

答案 1 :(得分:0)

我不习惯在Sharepoint工作,但在我看来,触发显示对话框的功能在某种程度上提供了不同的测量变量值,所以是的,您可能需要在某处更改代码。尝试在整个解决方案中搜索“1032” - 也许将宽度测量值分配给某个变量。

如果你想让两个对话框看起来都一样,但是无法找到它们的测量位置(尽管我强烈建议你先尝试一下),你也许可以通过使用!important来覆盖内联样式。 ,像这样:

.ms-dglContent {width:402px!important;}