在gridview中向imageButton添加功能

时间:2011-05-02 15:46:58

标签: c# asp.net

你好 我有一个ImageButton控件作为GridView控件的一部分,显示为ItemTemplate并且在同一GridView我有一个常规的Button控件我添加了一些像这样的代码。

 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
    if (e.CommandName == "addToSession")
    {
        //get the row index stored in the CommandArgument property
        int index = Convert.ToInt32(e.CommandArgument);

        //get the gridview row where the command is raised
        GridViewRow selectedRow = ((GridView)e.CommandSource).Rows[index];

        //values stored in the text property of the cells
        string ISBN = selectedRow.Cells[0].Text;
        string bookTitle = selectedRow.Cells[1].Text;
        string image = selectedRow.Cells[2].Text;

        Service s = new Service();
        Session["ISBN"] = ISBN;
        Session["bookTitle"] = bookTitle;
        Session["ImageUrl"] = s.returnImageUrl(bookTitle);

        if (Session["userName"] == null)
        {
            Response.Redirect("registerPage.aspx");
        }
        else
        {
            Response.Redirect("RateBook.aspx");
        }
    }
    else if (e.CommandName == "ratedBooks")
    {
        int index = Convert.ToInt32(e.CommandArgument);

        GridViewRow selectedRow = ((GridView)e.CommandSource).Rows[index];

        string bookTitle = selectedRow.Cells[1].Text;

        Service s = new Service();

        Session["ImageUrl"] = s.returnImageUrl(bookTitle);

        Response.Redirect("BookRated.aspx");
    }

当我运行此代码时,我得到格式异常,我不知道为什么。 我稍微改变了图像按钮并将图像嵌套在链接按钮中,这似乎更正确。

<asp:TemplateField>
                <ItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" CommandName="ratedBooks">
                        <asp:Image ID="ImageButton1" ImageUrl='<%#Eval("pictureUrl") %>'
                            runat="server" />   

                    </asp:LinkButton>    

                </ItemTemplate>
            </asp:TemplateField>

建议或许做什么

问候

1 个答案:

答案 0 :(得分:0)

ImageButton.CommandName是一个有效的属性,它应该与Button.CommandName的工作方式相同。

问题很可能出在GridView1_RowCommand程序中。您是否可以发布整个程序代码,包括用于处理ImageButton click

的部分