код позади в newform.Aspx? - PullRequest
0 голосов
/ 05 мая 2011

У меня есть список, который должен быть заполнен небольшим фрагментом кода (предварительно заполнив некоторые поля, и немного поработаю над кнопкой сохранения).

Каков наилучший способ сделать это?

ТНХ

Редактировать: Я закончил, создав пользовательскую веб-часть на default.aspx. В этой веб-части у меня есть куча:

<table border="0" cellspacing="0" width="100%">
<tr>
    <td width="190px" valign="top" class="ms-formlabel">
        <h3 class="ms-standardheader">
            <nobr>Title<span class="ms-formvalidation"> *</span>
            </nobr>
        </h3>
    </td>
    <td width="400px" valign="top" class="ms-formbody">
        <SharePoint:FormField runat="server" id="fldTitle" ControlMode="New" FieldName="Title" ListId="{MyListID}" />
        <SharePoint:FieldDescription runat="server" id="ff1description" FieldName="Title" ControlMode="New" ListId="{MyListID}"/>
    </td>
</tr>

Это работает, но я нашел это немного болезненным, потому что я должен прочитать каждое поле формы в коде:

    private void Set(SPListItem item, string fieldInternalName, object fieldValue)
    {
        var field = item.Fields.GetFieldByInternalName(fieldInternalName);
        item[fieldInternalName] = fieldValue;
    }
    protected void Btn_Ok_Click(object sender, EventArgs e)
    {

        SPWeb thisWeb = SPContext.Current.Web;
        SPList myList= thisWeb.Lists["mylist"];
        SPListItem newItem;
        newItem= myList.Items.Add();

        var router = thisWeb.EnsureUser(@"myuser");

        Set(newItem, "Title", fldTitle.Value);
        Set(newItem, "OtherField", fldOther.Value);
        Set(newItem, "AnotherField", GetFromBusinessLogic());


        SPUtility.Redirect(thisWeb.Url, SPRedirectFlags.Default, System.Web.HttpContext.Current);
        newItem.Update();

    }

Есть ли способ обернуть все это в контейнер пользовательской формы? Может быть, пользовательский ListFormWebPart с внутренними шаблонами и событиями с выделенным кодом?

1 Ответ

0 голосов
/ 05 мая 2011

Вы можете следовать предложению здесь , чтобы добавить код позади.

НО, даже если вы вставите файл с выделенным кодом, вы все равно не сможете ссылаться на элементы управления (полякнопки сохранения и т. д.) в форме из выделенного кода.

Я бы предложил написать веб-сервис (asmx или WCF) и разместить его на экземпляре Sharepoint.Затем вы можете использовать вызовы javascript и AJAX для выполнения инициализации и проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...