Привязка общего списка объектов к ListView, а затем обновление связанного списка - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть ListView, связанный с общим списком созданных мною объектов.

<asp:ListView ID="lvwConfig" runat="server">
    <ItemTemplate>
        <br />
        <div class="title_small">
            <asp:Label ID="lblName" runat="server" Text='<%#Eval("Name")%>'/>
        </div>

        <asp:TextBox ID="iFirstValue" runat="server" MaxLength="8" Text='<%#Eval("FirstValue")%>'></asp:TextBox><br />
        <asp:TextBox ID="iSecondValue" runat="server" MaxLength="8" Text='<%#Eval("SecondValue")%>'></asp:TextBox><br /> 
        <asp:TextBox ID="iThirdValue" runat="server" MaxLength="8" Text='<%#Eval("ThirdValue")%>'></asp:TextBox><br />
    </ItemTemplate>
</asp:ListView>


protected void btnSave_Click(object sender, EventArgs e)
{
    //Loop through each item in the listview
    for (int i = 0; i < lvwSMSConfig.Items.Count(); i++)
    {
        //Some code to check to see if the value was updated
        //If it was, call UpdateItem
        lvwSMSConfig.UpdateItem(i,true);
    }
}


protected void lvwSMSConfig_ItemUpdating(Object sender, ListViewUpdateEventArgs e)
{
    TextBox iFirstValue= (TextBox)lvwSMSConfig.Items[e.ItemIndex].FindControl("iFirstValue");
    TextBox iSecondValue= (TextBox)lvwSMSConfig.Items[e.ItemIndex].FindControl("iSecondValue");
    TextBox iThirdValue= (TextBox)lvwSMSConfig.Items[e.ItemIndex].FindControl("iThirdValue");

    myObjectList[e.ItemIndex].FirstValue= iFirstValue.Text;
    myObjectList[e.ItemIndex].SecondValue= iSecondValue.Text;
    myObjectList[e.ItemIndex].ThirdValue= iThirdValue.Text;
}

Приведенный выше код (модифицированный для публичной публикации) отлично работает, но я не уверен, что это лучший способ достичь моей цели. Есть ли более прямой маршрут, по которому я должен идти?

1 Ответ

0 голосов
/ 07 декабря 2011

Я бы сказал, нет, это не самый простой способ.

Рассматривали ли вы использование элемента управления источником данных?Что-то вроде элемента управления ObjectDatasource или SQLDataSource оказывается очень полезным в таких случаях.

Есть и другие шаблоны, которые вы можете использовать, например, Обновление должно использовать EditItemTemplate.Я сделал быстрый поиск, чтобы получить ссылку на более подробную информацию о том, как наилучшим образом использовать элемент управления Listview.Например, вы заметите, что вам не нужно совершать FindControl звонки. Ссылка

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