четверг, 22 сентября 2011 г.

js для ButtonField ButtonType="Image" в GridView

Спросили меня на днях, как добавить js для ButtonField ButtonType="Image", вроде мелоч а сразу и не сообразил, не долго лазия в google дал ответ))):
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
 if (e.Row.RowType == DataControlRowType.DataRow &&

  (e.Row.RowState ==

 DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate))
  {
  if (e.Row.Cells[columnGrid].Controls[0] is ImageButton)
   {
    ((ImageButton)e.Row.Cells[columnGrid].Controls[0]).Attributes.Add("onclick",
    "alert('123');");
   }
  }
}

Redirect с формы создание нового элемента списка

Заметил на не скольких форумах, что народ спрашивает, как можно после нажатия на кнопку сохранить переходить не на страницу с представлением списка, а например на главную. Есть несколько врянтов, один из которых изменить ссылку на форму. У меня в проекте есть веб-часть в ней несколько ссылок на создания элементов в разных списках. Веб-часть находится на странице http://mysite/mainPage.aspx и мне надо было сделать, так, что пользователь после добавления элемента переходил на главную страницу. Чтобы это организовать можно адрес формы http://mysite/Lists/newList/NewForm.aspx заменить на http://mysite/Lists/newList/NewForm.aspx?Source=http%3A%2F%2Fmysite. Вот собственно говоря и все!

среда, 21 сентября 2011 г.

Запись в PeopleEditor

Решил записать данные в PeopleEditor, нашел такой способ:

ArrayList arList = new ArrayList();
PickerEntity ent = new PickerEntity();
ent.Key = userName;
arList.Add(ent);
PeopleEditor1.UpdateEntities(arList);

пятница, 16 сентября 2011 г.

Custom DispForms

При создании в SharePoint Designer новой custom dispForm из формы пропадает отображение вложения списка. Стандартная форма списка(dispForm):
Мы видем, что на форме отображается поле Вложение, теперь если изменить форму dispForm на созданную в designere, то мы увидем, что поле Вложение пропало:

Чтобы устранить эту проблему можно сделать следующее:
1. В SharePoint Designer в новой customDispForm добавляем нову строку:



2. Нажимаем на первый столбец строки, удаляем строчку - " <xsl:text xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" ddwrt:nbsp-preserve="yes" disable-output-escaping="yes">&amp;nbsp;</xsl:text> " и вместо нее вставляем - " <nobr>Вложение</nobr> "

3. Удалем строчку и из второго столбца и вставляем - " <SharePoint:AttachmentsField ControlMode="Display" FieldName="Attachments" runat="server" Visible="true"/> "

Теперь обновляем и видим:

понедельник, 5 сентября 2011 г.

Получение данных из asp:FileUpload и запись в ListItem.Attachment

В веб-часть добавим:

<asp:FileUpload ID="FileUpload1" runat="server"/>
   
в code behinde пишем:

ViewState["fileContents"] = GetFileContents(FileUpload1.PostedFile);

byte[] myfile = (byte[])ViewState["fileContents"];

SPListItem item = web.Lists["nameList"].Items.Add();
item["Title"]="nameListItem";
item.Attachments.Add(FileUpload1.FileName, myfile);
item.Update()
private byte[] GetFileContents(HttpPostedFile postedFile)
        {           
            HttpPostedFile file = postedFile;
            Stream fstream = file.InputStream;
            byte[] contents = new byte[fstream.Length];
            fstream.Read(contents, 0, (int)fstream.Length);
            fstream.Close();
            fstream.Dispose();
            return contents;
        }

Получение данных из SharePoint:PeopleEditor и запись в SPFieldUserValueCollection

В веб-часть добавляем:

<SharePoint:PeopleEditor ID="PeopleEditor1" BorderStyle="Solid" BorderWidth="1" BorderColor="Black" runat="server" AllowEmpty="false" MultiSelect="true" SelectionSet="User" />

в code behinde пишем:

SPFieldUserValueCollection
fieldUserValueColl = new SPFieldUserValueCollection();
int index = 0;
for (index = 0; index <= this.PeopleEditor1.ResolvedEntities.Count - 1; ++index)
{
PickerEntity pickerEntity = (PickerEntity)this.PeopleEditor1.ResolvedEntities[index];
fieldUserValueColl.Add(
new SPFieldUserValue(web, Convert.ToInt32(pickerEntity.EntityData["SPUserID"]), pickerEntity.Key));
}
Propertis.ListItem["Соавторы"] = fieldUserValueColl;
Propertis.ListItem.Update();