Здравствуйте, 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>Как заставить работать сию конструкцию? Спасибо.