2012-09-22 47 views
0

我是一个有点卡住我一直在试图找出什么是错了好久了的,这是以前的工作,然后它突然停了下来。错误我得到的是:奇怪解析错误--The服务器标签不规范

Server Error in '/' Application. Parser Error Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: The server tag is not well formed.

Source Error:

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

什么'Image1'在'Image1.ImageUrl = img.ImageUrl;'? –

+0

此搜索只是一个形象我是为了显示,装载了我已经绑定了之后的图像。不知道为什么Image1看起来像一个类而不是标识符 – user1279734

+0

任何人?我可以请一些帮助吗? – user1279734

回答

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) 
{ 

} 

诺塔:问题是你的委托签名

+0

我试了一下没有工作,这推动我逼疯了。感谢Aghilas Yakoub。还有其他建议吗? – user1279734

+0

更新我用的onClick委托 –

+0

Aghilas Yakoub没有工作,我仍然得到解析错误的答案。 – user1279734

0

问题就在这里:

src= 
    "<%# DataBinder.Eval(Container.DataItem, "Link") %>" + 
    "<%# DataBinder.Eval(Container.DataItem, "ImageName")%>" 

的问题是引号嵌套在引号内。

通知StackOverflow上的代码格式化甚至如何如何“链接”和“ImageName”是在该行的一段代码回升。

尝试用单引号代替双引号:

src= 
    '<%# DataBinder.Eval(Container.DataItem, "Link") %>' + 
    '<%# DataBinder.Eval(Container.DataItem, "ImageName")%>' 

如果这没有帮助你(旧题),或许它会帮助别人。