【发布时间】:2009-05-15 12:30:28
【问题描述】:
我编写了一个示例 webpart,它采用从 orher webpart 传递的参数并将其值显示在标签上。代码如下:
[Guid("11a885e9-13e1-4c6e-8045-e5575794ebd8")]
public class DisplayParameter : System.Web.UI.WebControls.WebParts.WebPart
{
protected Label _label = new Label();
private string _message;
[ConnectionConsumer("Parameter to show")]
public void GetWPConnectedProviderInterface(IWebPartField connectProvider)
{
FieldCallback callback = FieldCallback;
connectProvider.GetFieldValue(callback);
}
private void FieldCallback(object fieldValue)
{
_message = (string)fieldValue;
}
protected override void OnPreRender(EventArgs args)
{
if (string.IsNullOrEmpty(_message))
_label.Text = "No Message.";
else
_label.Text = _message;
}
protected override void CreateChildControls()
{
base.CreateChildControls();
Controls.Add(_label);
}
}
然后我将 WP 放在一个页面上,并使用 SPD 生成一个 DataView WP,以便将文件名从 Doc 库传递给 WP。
第一次可以正常工作,但是当我选择另一个文档时,出现以下异常:
无法将“Test.Assembly.SharepointProject.DislayParameter”类型的对象转换为“Microsoft.SharePoint.WebPartPages.WebPart”类型。
这让我想... 我是否必须从 Microsoft.SharePoint.WebPartPages.WebPart 而不是 System.Web.UI.WebControls.WebParts.WebPart 继承?如果是, 既然 MSDN 和博主都建议使用后一个类,这样做的缺点是什么?
【问题讨论】:
标签: sharepoint sharepoint-2007 web-parts