Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление в GridView, траблик с ObjectDataSource 
:(
    Опции темы
AleXGray
Дата 20.8.2007, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 18.1.2007

Репутация: нет
Всего: 1



Доброго времени суток!

Проблема в следующем: создал ObjectDataSource. На основе класса, реализующего методы добавления, удаления , редактирования и выборки из базы.
Создал GridView. Привязал к  ObjectDataSource. При попытке использовать стандартную кнопку удаления записи получил такое:

ObjectDataSource 'ObjectDataSource1' could not find a non-generic method 'DeleteUser' that has parameters: Id, Login, Password, About, Type. 

Естественно у меня метод DeleteUser имеет только 1 параметр Id!
А таблица отображает полей побольше. Но почему то все эти поля передаются как параметры DeleteUserу. 

Что с этим можно поделать?

Код страницы:

Код


<%@ Page  Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:GridView ID="GridView1" runat="server"  DataKeyNames="Id" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None" Width="316px">
            <Columns>
                <asp:CommandField ShowEditButton="True" ShowDeleteButton="True" ValidationGroup="id" />
                <asp:HyperLinkField DataTextField="Id" DataNavigateUrlFields="Id" DataNavigateUrlFormatString='~/Default2.aspx?Id={0}' HeaderText="Id" DataTextFormatString='{0}' /> 
                <asp:TemplateField>
                    <EditItemTemplate>
                        <asp:HiddenField ID="TextBox1" runat="server" Value='<%# Bind("Id") %>'></asp:HiddenField> 
                    </EditItemTemplate>
                    <ItemTemplate>
                         <asp:HiddenField ID="TextBox1" runat="server" Value='<%# Bind("Id") %>'></asp:HiddenField>            
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Login" SortExpression="Login">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Login") %>'></asp:TextBox>                      
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Login empty!" ControlToValidate="TextBox2" Display="Dynamic" Font-Size="Smaller"></asp:RequiredFieldValidator>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("Login") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Password" SortExpression="Password">
                    <EditItemTemplate>
                        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("Password") %>'></asp:TextBox>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox3"
                            Display="Dynamic" ErrorMessage="Password empty!" Font-Size="Smaller"></asp:RequiredFieldValidator>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("Password") %>'></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField ShowHeader="False">
                    <EditItemTemplate>
                        <asp:HiddenField ID="TextBox5" runat="server" Value='<%# Bind("About") %>'></asp:HiddenField>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:HiddenField ID="Label5" runat="server" Value='<%# Bind("About") %>'></asp:HiddenField>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField ShowHeader="False">
                    <EditItemTemplate>
                        <asp:HiddenField ID="TextBox4" runat="server" Value='<%# Bind("Type") %>'></asp:HiddenField>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:HiddenField ID="Label4" runat="server" Value='<%# Bind("Type") %>'></asp:HiddenField>
                    </ItemTemplate>
                </asp:TemplateField>
               
            </Columns>
            <FooterStyle BackColor="Tan" />
            <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
            <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />
            <HeaderStyle BackColor="Tan" Font-Bold="True" />
            <AlternatingRowStyle BackColor="PaleGoldenrod" />
        </asp:GridView>
        <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="DeleteUser" SelectMethod="UsersList" TypeName="Test.User" UpdateMethod="EditUser" InsertMethod="AddUser" ConflictDetection="CompareAllValues">
            <DeleteParameters>
                <asp:Parameter Name="id" Type="Int32" />
            </DeleteParameters>
            <UpdateParameters>
                <asp:Parameter Name="id" Type="Int32" />
                <asp:Parameter Name="login" Type="String" />
                <asp:Parameter Name="password" Type="String" />
                <asp:Parameter Name="about" Type="String" />
                <asp:Parameter Name="type" Type="String" />
            </UpdateParameters>
            <InsertParameters>
                <asp:Parameter Name="login" Type="String" />
                <asp:Parameter Name="password" Type="String" />
                <asp:Parameter Name="about" Type="String" />
                <asp:Parameter Name="type" Type="String" />
                <asp:Parameter Direction="Output" Name="_id" Type="Int32" />
            </InsertParameters>
        </asp:ObjectDataSource>
        &nbsp; &nbsp;
        <br />
    
    </div>
        
    </form>
</body>
</html>


--------------------
В начале было Слово
PM MAIL   Вверх
tol05
Дата 21.8.2007, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: нет
Всего: 170



AleXGray, посмотри по коду, ты нигде не добавляешь DeleteParameters программно?
типа
ObjectDataSource1.DeleteParameters.Add(...)


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
AleXGray
Дата 21.8.2007, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 126
Регистрация: 18.1.2007

Репутация: нет
Всего: 1



Код

protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString.GetValues("type") != null)
        {
           ObjectDataSource1.SelectParameters.Clear(); 
           ObjectDataSource1.SelectParameters.Add("type", Request.QueryString.GetValues("type").GetValue(0).ToString());
        }


вот это и весь код.
То есть добавляю, но на SelectParameters. И то не всегда. Select работает правильно.

Вообще странная штука. Убил все поля и пересоздал. Сейчас работает. Ничего не понимаю.
--------------------
В начале было Слово
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ASP | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.