在listview中处理asp.net图像按钮

时间:2013-10-28 17:38:12

标签: c# asp.net listview

我有一个包含这样的列表视图的webform:

<asp:ListView ID="SlidesListView" runat="server" OnItemCommand="SlidesListView_ItemCommand">
                <LayoutTemplate>
                    <span runat="server" id="itemPlaceholder" style="display: inline-block" />
                </LayoutTemplate>
                <ItemTemplate>
                    <div class="SlideDiv">
                        <div>
                            <asp:ImageButton ID="ChangeDescriptionImageButton" runat="server" ImageUrl="~/Image/Change.png" CommandArgument="<%# Eval("ID") %>" CommandName="Change" AlternateText="Change" ToolTip="Change" />
                            <asp:Image ID="Image1" runat="server" CssClass="MiniSliderPic" ImageUrl='<%#Eval("ImagePath") %>' AlternateText='<%#Eval("Description") %>' ToolTip='<%#Eval("Description") %>' />
                            <p><%#Eval("Description").ToString().Replace(Environment.NewLine, "<br/>").Replace("\n", "<br />") %></p>
                        </div>
                    </div>
                    </span>
                </ItemTemplate>

            </asp:ListView>

和codebehind:

protected void SlidesListView_ItemCommand(object sender, ListViewCommandEventArgs e)
    {
        int ID = 0;
        switch (e.CommandName)
        {
            case "Change":
                ID = Convert.ToInt32(e.CommandArgument.ToString());
              break;

} }

但是当我尝试打开此网络表单时,我遇到了这个错误:

解析为此请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息并相应地修改源文件。 服务器标签格式不正确

和asp:ImageButton标签变红了。为什么?

1 个答案:

答案 0 :(得分:1)

改变这个:

CommandArgument="<%# Eval("ID") %>"

对此:

 CommandArgument='<%# Eval("ID") %>'
顺便说一句,我认为你不能用这种方式使用imagebutton。它会激发它赢得OnCommand而不是ListView的ItemCommand。考虑使用带有图像的链接按钮。

<asp:LinkButton ID="ChangeDescriptionLinkButton" runat="server"
    CommandName="Change"
    CommandArgument='<%# Eval("ID") %>' >
    <img src="~/Image/Change.png" alt="Change" />Change
</asp:LinkButton>