Re: ListView + SqlDataSource - проблема Update
От: BorisLee  
Дата: 12.11.12 04:53
Оценка:
Здравствуйте, Strudel, Вы писали:

Заменить ControlParameter на просто Parameter в списке параметров Update. И, наверное, лучше пользоваться вначале мастерами студии, чтобы не биться в рукопашную.

S>Приветствую!


S>Использую ListView, без изысков, практически взято из мсдн. "В процессе" прикрутил к нему OnItemUpdated и OnItemUpdating, но не суть.

S>
S>            <asp:ListView ID="ListView2" runat="server" DataSourceID="SqlInventory" DataKeyNames="InventoryUUID"
S>                OnItemUpdated="ListView2_ItemUpdated" OnItemUpdating="ListView2_ItemUpdating">
S>                <LayoutTemplate>
S>                    <table runat="server" id="table1">
S>                        <tr>
S>                            <th>InvetoryUUID</th>
S>                            <th>Name</th>
S>                        </tr>
S>                        <tr runat="server" id="itemPlaceholder">
S>                        </tr>
S>                    </table>
S>                </LayoutTemplate>
S>                <ItemTemplate>
S>                    <tr id="Tr1" runat="server">
S>                        <td id="Td1" runat="server">
S>                            <asp:Label ID="LabelInventoryUUID_it" runat="server" Text='<%#Eval("InventoryUUID") %>' />
S>                        </td>
S>                        <td id="Td3" runat="server">
S>                            <asp:Label ID="LabelName_it" runat="server" Text='<%#Eval("Name") %>' />
S>                        </td>
S>                        <td>
S>                            <asp:LinkButton runat="server" ID="EditButton" Text="Edit" CommandName="Edit" />
S>                        </td>
S>                    </tr>
S>                </ItemTemplate>
S>                <EditItemTemplate>
S>                    <tr id="Tr1" runat="server" style="background-color: Yellow">
S>                        <td id="Td1" runat="server">
S>                            <asp:TextBox ID="LabelInventoryUUID_ed" runat="server" Text='<%#Eval("InventoryUUID") %>' />
S>                        </td>
S>                        <td id="Td3" runat="server">
S>                            <asp:TextBox ID="TextBoxName_ed" runat="server" Text='<%#Bind("Name")%>' />
S>                        </td>
S>                        <td>
S>                            <asp:Button runat="server" ID="UpdateButton" Text="Update" CommandName="Update" />
S>                            <asp:Button runat="server" ID="CancelButton" Text="Cancel" CommandName="Cancel" />
S>                        </td>
S>                    </tr>
S>                </EditItemTemplate>
S>            </asp:ListView>
S>


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


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


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


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