2011-05-02 55 views
1

喂有 我有一个ImageButton控制作为被显示为ItemTemplate并在相同GridView一个GridView控制的一部分予具有规则Button控制到予添加了一些这样的代码添加功能的一个的ImageButton 。在一个gridview

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> 

建议还可能是做什么

问候

回答

0

ImageButton.CommandName是一个有效的属性,它应该工作一样Button.CommandName

那么问题很可能发生在您的GridView1_RowCommand过程中。您能否发布整个程序代码,包括处理ImageButton click的部分?

+0

我编辑过原创,谢谢你的帮助。 – Arianule 2011-05-02 16:18:06