【发布时间】:2011-08-17 03:23:27
【问题描述】:
我有一个 ImageButton 控件作为 GridView 控件的一部分,该控件显示为 ItemTemplate 并在同一个 GridView 中。我有一个常规的 Button 控件,我在其中添加了一些类似这样的代码
if (e.CommandName == "addToSession")
{
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow selectedRow = ((GridView)e.CommandSource).Rows[index];
string ISBN = selectedRow.Cells[0].Text;
string bookTitle = selectedRow.Cells[1].Text;
string image = selectedRow.Cells[2].Text;
//storing title, author, pictureUrl into session variables to 'carry them over' to RateBook.aspx
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>
请指教。
问候,
阿里安
【问题讨论】:
-
@marco:在 GridView TemplateField 的 ItemTemplate 上下文中,您绝对可以拥有
Eval()语句。 -
嗨...我删除了我的第一条评论...感谢您的建议!