Изменить свойство в веб-части по коду в песочнице
Вот как я сохраняю свойство своей веб-части в решении фермы:
SPContext.Current.Web.AllowUnsafeUpdates = true;
SPFile file = SPContext.Current.File;
SPLimitedWebPartManager mgr = file.GetLimitedWebPartManager(PersonalizationScope.Shared);
for (int index = 0; index < mgr.WebParts.Count; index++)
{
if (mgr.WebParts[index].ID == this.ID)
{
((MyWebpartType) mgr.WebParts[index]).MyStringProperty = "Hello World!";
mgr.SaveChanges(mgr.WebParts[index]);
}
}
SPContext.Current.Web.AllowUnsafeUpdates = false;
Работает отлично.
Теперь я должен достичь того же, но в песочнице решения, но нет SPLimitedWebPartManager
имеется в наличии.
Итак, как я могу изменить свойство веб-части по коду внутри веб-части решения песочницы?
2 ответа
Нашел решение, позвонил SetPersonalizationDirty()
в веб-части сохраняются все свойства.
Вы можете определить свое собственное свойство веб-части, как показано ниже:
public partial class BannerSlider : System.Web.UI.WebControls.WebParts.WebPart
{
[WebBrowsable(true),
Personalizable(PersonalizationScope.Shared),
WebDescription("My WebPart Property"),
Category("Custom Properties"),
WebDisplayName("My WebPart Property")]
public string MyProperty
{
get { return __myProperty; }
set { _myProperty= value; }
}
protected void Page_Load(object sender, EventArgs e)
{
this.MyProperty = "Hello World";