//open site and web
sSiteID = Request.QueryString["siteID"];
sWebID = Request.QueryString["parentWebID"];
site = new SPSite(new Guid(sSiteID));
web = site.OpenWeb(new Guid(sWebID));
//show the properties of the list in the edit form
(...)
if ((list.AllowContentTypes == true) && (list.ContentTypesEnabled == true))
{
(...)
SharePointWebControls oSharePointWebControls = new SharePointWebControls();
cntrl = oSharePointWebControls.GetSharePointControls(field, list, item, SPControlMode.Edit, "");
}
public Control GetSharePointControls(SPField field, SPList list, SPListItem item, SPControlMode mode, string strType)
{
switch (field.FieldRenderingControl.ToString())
{
case "Microsoft.SharePoint.WebControls.TextField":
return CreateTextFieldControl(field, list, item, mode);
}
}
#region Create SharePoint Controls
private static Control CreateTextFieldControl(SPField field, SPList list, SPListItem item, SPControlMode mode)
{
TextField tf = new TextField();
//tf.EnableViewState=false;
tf.ListId = list.ID;
if (item != null)
{
tf.ItemId = item.ID;
}
tf.FieldName = field.Title;
tf.ID = "Field_" + field.Id;
//tf.CssClass = "spsControl";
tf.ControlMode = mode;
//check if the field has a default value
if (field.DefaultValue != "null" && field.DefaultValue != null)
{
tf.Text = field.DefaultValue.ToString();
}
try
{
RequiredFieldValidator cntrlValidator = ((RequiredFieldValidator)tf.Controls[0].Controls[3]);
}
catch (Exception ex)
{
}
return tf;
}
все элементы управления sharepoint, которые я использую, работают, и tf возвращается правильно, но когда я не на текущем сайте или в текущем веб
это исключение произошло: InvalidArgumentException в элементе управления.
Я думаю, что эти элементы управления не работают за пределами текущего сайта или сети, и я должен использовать элемент управления asp.net? Это правильно или есть другое решение? Заранее спасибо ...