我有点陷阱我一直试图找出这个问题多年来一直存在,它在此之前就已经突然停止了。我得到的错误是:
>'/'应用程序中的服务器错误。 分析器错误 说明:解析为此请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息并相应地修改源文件。分析程序错误消息:服务器标记格式不正确。
来源错误:
Line 20: <tr>
Line 21: <td width="200" valign="top" align="center">
Line 22: <img id="imageShow" runat="server" src="<%# DataBinder.Eval( Container.DataItem, "Link" ) %><%# DataBinder.Eval( Container.DataItem, "ImageName")%>" width="200px" height="150px" onclick ="ShowImage" alt="already done" />
Line 23: </td>
Line 24: <td width="200">
源文件:/WebForm1.aspx行:22
我的代码如下:
<asp:Panel id="pnlShowItems" runat="server">
<asp:DataList id="d1Items" runat="server" DataKeyField="ImageID" >
<ItemTemplate>
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="200" valign="top" align="center">
<img id="imageShow" runat="server"
src="<%# DataBinder.Eval( Container.DataItem, "Link" ) %><
%# DataBinder.Eval( Container.DataItem, "ImageName")%>" width="200px" height="150px"
onclick ="ShowImage" alt="already done" />
</td>
<td width="200">
<strong><%# DataBinder.Eval( Container.DataItem, "Link" ) %></strong>
<br />
Cost: $<%# DataBinder.Eval(Container.DataItem, "PageDetailID")%><br /><br />
<asp:Button id="btnAddToCart" runat="server"
Text="Add To Cart" CommandName="Edit"/>
</td>
</tr>
<tr>
<td colspan="2" width="400"><hr height="1" />
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</asp:Panel>
后面的代码是这样的:
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection conn;
SqlCommand comm;
SqlDataReader reader;
string connectionString = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
conn = new SqlConnection(connectionString);
comm = new SqlCommand(@"SELECT ImageID, RTRIM(LTRIM(ImageName )) ImageName, Description, 'Images/' Link, PageDetailID FROM dbo.Images", conn);
conn.Open();
reader = comm.ExecuteReader();
reader.Read();
d1Items.DataSource = reader;
d1Items.DataBind();
conn.Close();
}
public void ShowImage()
{
DataListItem dli = this.d1Items.Controls[this.d1Items.Controls.Count - 1] as DataListItem;
Image img = dli.FindControl("imageShow") as Image;
Image1.ImageUrl = img.ImageUrl;
}
有什么想法吗?谢谢
答案 0 :(得分:1)
问题在于:
src=
"<%# DataBinder.Eval(Container.DataItem, "Link") %>" +
"<%# DataBinder.Eval(Container.DataItem, "ImageName")%>"
问题在于引号嵌套在引号内。
请注意StackOverflow的代码格式化如何选择“Link”和“ImageName”是该行中的一段代码。
尝试用单引号替换双引号:
src=
'<%# DataBinder.Eval(Container.DataItem, "Link") %>' +
'<%# DataBinder.Eval(Container.DataItem, "ImageName")%>'
如果这对你没有帮助(旧问题),也许它会帮助别人。
答案 1 :(得分:0)
您可以调整您的代理人 - 我建议您使用imageButton
<asp:ImageButton
id="imageShow"
runat="server"
ImageUrl="<%# DataBinder.Eval( Container.DataItem, "Link" ) + DataBinder.Eval( Container.DataItem, "ImageName")%>" width="200px" height="150px" onclick ="ShowImage" alt="already done" />
void ShowImage(Object sender, EventArgs e)
{
}
Nota:问题在于你的代表签名