Задача
Решение
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:GridView ID="SampleListView" runat="server"> </asp:GridView> <asp:TextBox ID="NewItemTitle" runat="server"></asp:TextBox><br/> <asp:Button ID="uxSubmit" runat="server" onclick="uxSubmit_Submit" Text="Добавить" /> <asp:Label ID="IbIResult" runat="server" Text="Ajax"></asp:Label> <!-- Ajax ends here with --> </ContentTemplate> </asp:UpdatePanel>
Теперь переходим к реализации алгоритма обработки всего этого дела. Писать код будем на C#, итак в файле VisualWebPart1UserControl.ascx.cs в класс VisualWebPart1UserControl нужно добавить следующий код:
// Обрабатывает нажатие кнопки "Добавить" protected void uxSubmit_Submit(object sender, EventArgs e){ try { // Добавим новый элемент в список AddListItem(NewItemTitle.Text); // Почистим поле с наименованием NewItemTitle.Text = ""; // Обновим таблицу, отображающую текущее состояние списка UpdateSampleListView(); // Выведем результат выполнения операции IbIResult.Text = "Submitted created!"; } catch (Exception ex) { // Если словили исключение выведем в результат операции // информацию об исключении IbIResult.Text = "Task failed" + ex.Message; } } //Обновляет представление списка private void UpdateSampleListView() { // Получаем из контекста текущий сайт SPSite site = SPContext.Current.Site; using(SPWeb web = site.OpenWeb()) { // Получим нужный нам список SPList SampleList = web.Lists["SampleList"]; // Объявим коллекцию, в которой будем хранить элементы списка List<string> SampleListCollection = new List<string>(); // Пробежим по каждому элементу списка foreach (SPListItem curItem in SampleList.Items) { // Добавим значение поля Title текущего элемента списка // в коллекцию SampleListCollection.Add(curItem.Title); } // Привяжем источник данных к DataGrid'у SampleListView.DataSource = SampleListCollection; // Выведем в DataGrid всю коллекцию SampleListView.DataBind(); } } // Добавляет элемент в список private void AddListItem(string NewItemTitle) { // Получаем из контекста текущий сайт SPSite site = SPContext.Current.Site; using (SPWeb web = site.OpenWeb()) { // Получим нужный нам список SPList SampleList = web.Lists["SampleList"]; // Создадим новый элемент списка SPListItem newItem = SampleList.AddItem(); // Заполним поля нового элемента newItem["Title"] = NewItemTitle; // Запишем изменения newItem.Update(); } }