表单标签格式不正确(控件ID)

时间:2010-07-05 08:49:17

标签: asp.net

嗨,任何人都可以帮我解决我的问题。我将动态Id分配给图像控件的ID属性。问题是我得到一个错误,说“表格标签形成不好”。我将双引号替换为单引号或删除了这些引号,但我得到了同样的错误。我该如何解决这个问题?顺便说一下,我使用了c#语言。

<img ID="<%# DataBinder.Eval(Container.DataItem, "Id")%>" runat="server" />

4 个答案:

答案 0 :(得分:2)

制作本

<img ID="<%# DataBinder.Eval(Container.DataItem, "Id")%>" runat="server" />

到此:

<img ID='<%# DataBinder.Eval(Container.DataItem, "Id")%>' runat="server" />

更新:显然确实不可能这样做。我在html图像和图像服务器控件中进一步尝试了测试应用程序。在进一步思考并喝咖啡之后,有意义的是,ID不能这样设置。如何在代码隐藏中为没有ID的东西设置属性?

另一种方法是:

<form id="form1" runat="server">
    <div>
        <asp:PlaceHolder runat="server" ID="phTest"></asp:PlaceHolder>
    </div>
</form>

和代码隐藏:

HtmlImage image = new HtmlImage();
image.ID = "SomeRandomId";
image.Src = "urltosomeimage";

phTest.Controls.Add(image);

答案 1 :(得分:0)

我遇到了类似的问题,我解决了这个问题:

<img ID='<%# DataBinder.Eval(Container.DataItem, "Id")%>' runat="server" />

原因是&lt;%#%&gt;之间的表达式如果它不是单引号,则无法进行评估。

答案 2 :(得分:0)

这个怎么样?

<asp:img ID='<%# DataBinder.Eval(Container.DataItem, "Id")%>' runat="server" />

或尝试删除runat =“server”,因为你的img标签不是服务器控件

答案 3 :(得分:0)

如果您使用.NET 4.0设置ClientIDMode=Static或更改ID不在标记中,而是在代码隐藏中。

如果您需要从代码隐藏中访问它,请使用而不是。

相关问题