none
与GridView控件有关的 RRS feed

  • 问题

    1. 点击GridView中编辑、删除按钮时出错,显示

    ObjectDataSource“ObjectDataSource1”未能找到带参数的非泛型方法“Delete”: id, DocumentTemplateID。

    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.InvalidOperationException: ObjectDataSource“ObjectDataSource1”未能找到带参数的非泛型方法“Delete”: id, DocumentTemplateID。
    这是怎么回事啊?


    我用的是C#语言。
    2011年8月6日 4:03

全部回复

    1. 点击GridView中编辑、删除按钮时出错,显示

    ObjectDataSource“ObjectDataSource1”未能找到带参数的非泛型方法“Delete”: id, DocumentTemplateID。

    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.InvalidOperationException: ObjectDataSource“ObjectDataSource1”未能找到带参数的非泛型方法“Delete”: id, DocumentTemplateID。
    这是怎么回事啊?


    我用的是C#语言。


    请确定你的objectDataSource的Update函数的各个参数和你在ObjectDataSource的<UpdateParameters>中的各个Parameter一致,同时和DataBoundField或者是Bind函数的字段名保持一致。

    如果可以的话,请贴出源代码我们分析看看。


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月6日 6:47
  • 检查下gridview是否设置了DataKeyNames,

    参照

    http://blog.csdn.net/babyan/article/details/3648758


    http://blog.csdn.net/zx13525079024
    2011年8月8日 9:20
  • 设置了
    2011年8月9日 8:29
  • 设置了


    把你完整aspx和Update,Delete代码全部贴出来我们瞅瞅。

    Thx


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月9日 8:32
  • 我是直接“启用编辑”“启用删除”的,一开始点击编辑、删除都出错,就是上边说的那种错误。奇怪的是:我在模板中添加LinkButton编写click事件用来删除,等我调试好了,能删除了,那个直接“启用”的删除就也可以了,但是现在“编辑”还是不行,我也不会弄,还请帮帮忙啊
    2011年8月9日 8:48
  • 我是直接“启用编辑”“启用删除”的,一开始点击编辑、删除都出错,就是上边说的那种错误。奇怪的是:我在模板中添加LinkButton编写click事件用来删除,等我调试好了,能删除了,那个直接“启用”的删除就也可以了,但是现在“编辑”还是不行,我也不会弄,还请帮帮忙啊


    编辑的话,你必须绑定一个Update方法。做法和Delete方法基本过程一致,但是注意是用于更新数据的。

    或者你尝试GridView_RowEditing事件,然后:

    GridView1.EditIndex = e.NewEditIndex;

    GridView1.DataSource = xxx; //如果没有使用ObjectDataSource,必须硬性绑定数据集

    GridView1.DataBind();


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月9日 8:50
  • 有Update方法,可是我不会“编辑”的click事件

    “删除”的事件简单,我是这样写的

        protected void LinkButton1_Click(object sender, EventArgs e)
        {
            int id = int.Parse(((LinkButton)sender).CommandArgument.ToString());
            dt.Delete(id);
            this.GridView1.DataBind();
        }

    可是怎么也比不出来编辑的代码该怎么写?

    2011年8月9日 9:08
  • 准确的说是“更新”的过程中出现的问题。点击“编辑”之后,可以对那一行编辑,然后点击“更新”的时候,会显示“找不到Update方法”(实际上是有Update方法的,参数什么的也都一样,就是一直出错)
    2011年8月9日 9:19
  • 你好,还是请检查一下GridView方法的命名约定,还有objectdatasource的约定,参考http://www.css-blog.info/?p=742

    2011年8月10日 3:39
    版主
  • 准确的说是“更新”的过程中出现的问题。点击“编辑”之后,可以对那一行编辑,然后点击“更新”的时候,会显示“找不到Update方法”(实际上是有Update方法的,参数什么的也都一样,就是一直出错)


    请确定你的Update方法已经绑定到ObjectDataSource上面了,而且Update方法的各个参数和GridView(aspx代码中)各个数据库字段必须都一致。同时在UpdateParameters也定义这些字段参数。

    你索性黏贴出代码吧。包括aspx页面,Update方法的。


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月10日 3:43
  • 实在是解决不了,希望能尽快回复。

    1、aspx页面的代码:

    <%@ Page Language="C#" MasterPageFile="~/TopMaster.master" AutoEventWireup="true" CodeFile="DocumentTemplate.aspx.cs" Inherits="DocumentsManage_DocumentTemplate" Title="Untitled Page" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="LeftContent" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
        <table style="width: 100%; height: 69px">
            <tr>
                <td align="center" colspan="1" style="height: 21px;">
                </td>
                <td align="left" colspan="3" style="height: 21px; background-color: #e7e7ff">
                    <asp:Label ID="Label1" runat="server" Font-Size="X-Large" ForeColor=" black" Text="公文模板"></asp:Label></td>
            </tr>
            <tr>
                <td colspan="1" style="width: 5%; height: 17px">
                </td>
                <td colspan="3" style="height: 17px">
                    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White"
                        BorderColor="Goldenrod" BorderStyle="None" BorderWidth="1px" CellPadding="3"
                        DataKeyNames="DocumentTemplateID" EmptyDataText="没有可显示的数据记录。" GridLines="Horizontal" Width="664px" DataSourceID="ObjectDataSource1" Height="1px">
                        <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
                        <Columns>
                            <asp:BoundField DataField="DocumentTemplateID" HeaderText="公文编号" InsertVisible="False"
                                ReadOnly="True" SortExpression="DocumentTemplateID"  />
                            <asp:BoundField DataField="DocumentTemplateName" HeaderText="公文名字"
                                SortExpression="DocumentTemplateName" />
                            <asp:BoundField DataField="DocumentTemplateDescription" HeaderText="公文描述"
                                SortExpression="DocumentTemplateDescription" />
                            <asp:BoundField DataField="DocumentTemplatePath" HeaderText="公文路径"
                                SortExpression="DocumentTemplatePath" />
                            <asp:CommandField ShowEditButton="True" ShowDeleteButton="True" />
                        </Columns>
                        <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
                        <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
                        <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
                        <HeaderStyle BackColor="Goldenrod" Font-Bold="True" ForeColor="Black" />
                        <AlternatingRowStyle BackColor="#F7F7F7" />
                    </asp:GridView>
                    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete"
                       SelectMethod="select" TypeName="Winarray.Case.EnterpriseWebSite.BusinessObject.DocumentTemplate"
                        UpdateMethod="Update">
                        <DeleteParameters>
                            <asp:Parameter Name="DocumentTemplateID" Type="Int32" />
                        </DeleteParameters>
                        <UpdateParameters>
                            <asp:Parameter Name="DocumentTemplateID" Type="Int32" />
                            <asp:Parameter Name="DocumentTemplateName" Type="String" />
                            <asp:Parameter Name="DocumentTemplateDescrption" Type="String" />
                            <asp:Parameter Name ="DocumentTemplatePath" Type ="String" />
                        </UpdateParameters>
                    </asp:ObjectDataSource>
                    &nbsp;&nbsp;
                </td>
            </tr>
            <tr>
                <td style="width: 5%; height: 17px">
                </td>
                <td style="width: 100px; height: 17px">
                </td>
                <td style="width: 100px; height: 17px">
                </td>
                <td style="width: 100px; height: 17px">
                </td>
            </tr>
            <tr>
                <td colspan="1" style="background-color: #e7e7ff">
                </td>
                <td colspan="3" style="background-color: #e7e7ff">
                    <asp:HyperLink ID="HyperLink1" runat="server" Font-Size="Large" ForeColor="Blue"
                        NavigateUrl="~/admin/DocumentTemplateUpload.aspx">添加新的公文模板</asp:HyperLink></td>
            </tr>
            <tr>
                <td style="width: 5%">
                </td>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
            </tr>
            <tr>
                <td style="width: 5%">
                </td>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
            </tr>
        </table>
    </asp:Content><%@ Page Language="C#" MasterPageFile="~/TopMaster.master" AutoEventWireup="true" CodeFile="DocumentTemplate.aspx.cs" Inherits="DocumentsManage_DocumentTemplate" Title="Untitled Page" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="LeftContent" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
        <table style="width: 100%; height: 69px">
            <tr>
                <td align="center" colspan="1" style="height: 21px;">
                </td>
                <td align="left" colspan="3" style="height: 21px; background-color: #e7e7ff">
                    <asp:Label ID="Label1" runat="server" Font-Size="X-Large" ForeColor=" black" Text="公文模板"></asp:Label></td>
            </tr>
            <tr>
                <td colspan="1" style="width: 5%; height: 17px">
                </td>
                <td colspan="3" style="height: 17px">
                    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" BackColor="White"
                        BorderColor="Goldenrod" BorderStyle="None" BorderWidth="1px" CellPadding="3"
                        DataKeyNames="DocumentTemplateID" EmptyDataText="没有可显示的数据记录。" GridLines="Horizontal" Width="664px" DataSourceID="ObjectDataSource1" Height="1px">
                        <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
                        <Columns>
                            <asp:BoundField DataField="DocumentTemplateID" HeaderText="公文编号" InsertVisible="False"
                                ReadOnly="True" SortExpression="DocumentTemplateID"  />
                            <asp:BoundField DataField="DocumentTemplateName" HeaderText="公文名字"
                                SortExpression="DocumentTemplateName" />
                            <asp:BoundField DataField="DocumentTemplateDescription" HeaderText="公文描述"
                                SortExpression="DocumentTemplateDescription" />
                            <asp:BoundField DataField="DocumentTemplatePath" HeaderText="公文路径"
                                SortExpression="DocumentTemplatePath" />
                            <asp:CommandField ShowEditButton="True" ShowDeleteButton="True" />
                        </Columns>
                        <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
                        <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
                        <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
                        <HeaderStyle BackColor="Goldenrod" Font-Bold="True" ForeColor="Black" />
                        <AlternatingRowStyle BackColor="#F7F7F7" />
                    </asp:GridView>
                    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete"
                       SelectMethod="select" TypeName="Winarray.Case.EnterpriseWebSite.BusinessObject.DocumentTemplate"
                        UpdateMethod="Update">
                        <DeleteParameters>
                            <asp:Parameter Name="DocumentTemplateID" Type="Int32" />
                        </DeleteParameters>
                        <UpdateParameters>
                            <asp:Parameter Name="DocumentTemplateID" Type="Int32" />
                            <asp:Parameter Name="DocumentTemplateName" Type="String" />
                            <asp:Parameter Name="DocumentTemplateDescrption" Type="String" />
                            <asp:Parameter Name ="DocumentTemplatePath" Type ="String" />
                        </UpdateParameters>
                    </asp:ObjectDataSource>
                    &nbsp;&nbsp;
                </td>
            </tr>
            <tr>
                <td style="width: 5%; height: 17px">
                </td>
                <td style="width: 100px; height: 17px">
                </td>
                <td style="width: 100px; height: 17px">
                </td>
                <td style="width: 100px; height: 17px">
                </td>
            </tr>
            <tr>
                <td colspan="1" style="background-color: #e7e7ff">
                </td>
                <td colspan="3" style="background-color: #e7e7ff">
                    <asp:HyperLink ID="HyperLink1" runat="server" Font-Size="Large" ForeColor="Blue"
                        NavigateUrl="~/admin/DocumentTemplateUpload.aspx">添加新的公文模板</asp:HyperLink></td>
            </tr>
            <tr>
                <td style="width: 5%">
                </td>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
            </tr>
            <tr>
                <td style="width: 5%">
                </td>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
                <td style="width: 100px">
                </td>
            </tr>
        </table>
    </asp:Content>

    2、DocumentTemplate类中update方法:

    public void Update(int DocumentTemplateID, string DocumentTemplateName, string DocumentTemplateDescrption, string DocumentTemplatePath)
            {
                DocumentTemplateDS ds = new DocumentTemplateDS();
                DocumentTemplateDA.Update(DocumentTemplateID, DocumentTemplateName, DocumentTemplateDescrption, DocumentTemplatePath);
            }

    3、DocumentTemplateDA中update方法:

    public static void Update(int DocumentTemplateID, string DocumentTemplateName, string DocumentTemplateDescription, string DocumentTemplatePath)
            {
                Database database = DatabaseFactory.CreateDatabase();
                database.ExecuteNonQuery("dbo.UpdateDocumentTemp", new object[] { DocumentTemplateID, DocumentTemplateName, DocumentTemplateDescription, DocumentTemplatePath });


            }

    2011年8月10日 9:05
  • 我看过参数的命名约定那篇文章了,也仔细地检查了,觉得没有错呀,就是更新的时候会显示“找不到update方法”
    2011年8月10日 9:09
  • 我看过参数的命名约定那篇文章了,也仔细地检查了,觉得没有错呀,就是更新的时候会显示“找不到update方法”

    这样,请移除整个“UpdateParameters"。

     <UpdateParameters>
    <asp:Parameter Name="DocumentTemplateID" Type="Int32" />
    <asp:Parameter Name="DocumentTemplateName" Type="String" />
    <asp:Parameter Name="DocumentTemplateDescrption" Type="String" />
    <asp:Parameter Name ="DocumentTemplatePath" Type ="String" />
    </UpdateParameters>


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月10日 9:18
  • 我的神呐,还是不行,又错了

    “/WROAWebSite”应用程序中的服务器错误。

    ObjectDataSource“ObjectDataSource1”未能找到带参数的非泛型方法“Update”: DocumentTemplateName, DocumentTemplateDescription, DocumentTemplatePath, DocumentTemplateID。

    怎么办啊

    2011年8月10日 11:25

  • 保留UpdateParameters的内容,重新配置ObjectDataSource并编译一下程序,然后运行。

    还是不行,发我邮箱(只包含你当前问题的页面+数据库)。


    如果你有其它意见或私下交流,请直接发送maledong_work@foxmail.com;或者讨论(Talk)
    If you do not have QQ, please open the page and download it and click the image to talk or leave message for me.
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年8月11日 6:02