ListView + SqlDataSource - проблема Update
От: Strudel  
Дата: 08.11.12 14:22
Оценка:
Приветствую!

Использую ListView, без изысков, практически взято из мсдн. "В процессе" прикрутил к нему OnItemUpdated и OnItemUpdating, но не суть.
            <asp:ListView ID="ListView2" runat="server" DataSourceID="SqlInventory" DataKeyNames="InventoryUUID"
                OnItemUpdated="ListView2_ItemUpdated" OnItemUpdating="ListView2_ItemUpdating">
                <LayoutTemplate>
                    <table runat="server" id="table1">
                        <tr>
                            <th>InvetoryUUID</th>
                            <th>Name</th>
                        </tr>
                        <tr runat="server" id="itemPlaceholder">
                        </tr>
                    </table>
                </LayoutTemplate>
                <ItemTemplate>
                    <tr id="Tr1" runat="server">
                        <td id="Td1" runat="server">
                            <asp:Label ID="LabelInventoryUUID_it" runat="server" Text='<%#Eval("InventoryUUID") %>' />
                        </td>
                        <td id="Td3" runat="server">
                            <asp:Label ID="LabelName_it" runat="server" Text='<%#Eval("Name") %>' />
                        </td>
                        <td>
                            <asp:LinkButton runat="server" ID="EditButton" Text="Edit" CommandName="Edit" />
                        </td>
                    </tr>
                </ItemTemplate>
                <EditItemTemplate>
                    <tr id="Tr1" runat="server" style="background-color: Yellow">
                        <td id="Td1" runat="server">
                            <asp:TextBox ID="LabelInventoryUUID_ed" runat="server" Text='<%#Eval("InventoryUUID") %>' />
                        </td>
                        <td id="Td3" runat="server">
                            <asp:TextBox ID="TextBoxName_ed" runat="server" Text='<%#Bind("Name")%>' />
                        </td>
                        <td>
                            <asp:Button runat="server" ID="UpdateButton" Text="Update" CommandName="Update" />
                            <asp:Button runat="server" ID="CancelButton" Text="Cancel" CommandName="Cancel" />
                        </td>
                    </tr>
                </EditItemTemplate>
            </asp:ListView>


Тут же к нему источник данных. Раздел UpdateParameters прикрутил позже т.к. в мсдн о нем ни слова. Пробовал и <asp:Parameter>

    <asp:SqlDataSource runat="server" ID="SqlInventory\" ConnectionString="<%$ ConnectionStrings:SqlConnectionString %>"
        SelectCommand="SELECT * FROM Inventory"
        UpdateCommand="UPDATE Inventory SET InventoryID = @InventoryID, Name = @Name WHERE (InventoryUUID = @InventoryUUID)">
        <UpdateParameters>
            <asp:ControlParameter Name="InventoryID" Type="String" />
            <asp:ControlParameter Name="Name" Type="String" />
            <asp:ControlParameter Name="InventoryUUID" Type="String" />
        </UpdateParameters>
    </asp:SqlDataSource>


Проблемы при Update — если не определять секцию параметров <UpdateParameters> (как в мсдн и не только) , то получаю System.Data.SqlClient.SqlException: Must declare the scalar variable и имя параметра из запроса Update. Если же секция параметров определена, видно что ни <%#Bind("InventoryUUID")%> ни <%#Bind("Name")%> неработают, в обработчиках OnItemUpdat* видно, что значения параметров отсутствуют.

Как заставить работать сию конструкцию? Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.