ListView的动态事件处理程序?

时间:2009-03-14 08:27:42

标签: c# .net asp.net .net-3.5

一定是我的特别好运,今天我堆叠了另一个问题,第二次来这里寻求帮助。我真的需要帮助。

我有一个listView控件,我有一个按钮控件。我正在尝试向这个按钮添加事件处理程序,在来到这里之前我搜索了很多东西,但我发现的例子要么对我不起作用,要么对我作为初学者的理解太复杂。

我需要的是向按钮添加事件处理程序,因此当按下按钮时,某些功能(事件处理程序)将在服务器端执行。

这是aspx的代码 在顶部我有

EnableEventValidation="false"

EnableEventValidation="false"

然后是ListView本身:


List of all the books that are currently in the Library.


    <table width="630" cellpadding="2" cellspacing="5"/>
    <tr style="background-color:#DBE2E2;">
        <th>Image</th>
        <th>Book</th>
        <th>Description</th>

    </tr>
       <asp:PlaceHolder ID="itemPlaceholder" runat="server" />
    </table>

    <p>
    <asp:DataPager ID="pageTopics" runat="server" PageSize="5">
        <Fields>
            <asp:NextPreviousPagerField ShowFirstPageButton="false" ShowPreviousPageButton="true" ShowNextPageButton="false" />
            <asp:NumericPagerField />
            <asp:NextPreviousPagerField ShowFirstPageButton="false" ShowPreviousPageButton="false" ShowNextPageButton="true" ShowLastPageButton="false" />
        </Fields>
    </asp:DataPager>
    </p>
</LayoutTemplate>
<ItemTemplate>
     <tr>
    <td valign="top"> <br />
        <asp:Image ID="book_img" ImageUrl='<%# Eval("book_img") %>' Height="100" Width="100" runat="server" />
    </td>

    <td valign="top"><p><b>Book Name: </b><asp:Label ID="book_name" runat="server" Text='<%# Eval("book_name") %>' /><br />
        <b>Author: </b><asp:Label ID="book_author" runat="server" Text='<%# Eval("book_author") %>' /><br />
    <p></td> 

    <td valign="top"><p><asp:Label ID="book_short_desc" runat="server" Text='<%# Eval("book_short_desc") %>' /><br />
        <b>Sku id: </b><asp:Label ID="book_squ" runat="server" Text='<%# Eval("book_squ") %>' /><br />
        <b>Arrived On: </b><asp:Label ID="book_arrived" runat="server" Text='<%# Eval("book_arrived") %>' />
        <asp:HyperLink ID="bookDesc" runat="server" NavigateUrl='<%# "BookDesc.aspx?id=" + Eval("book_id") %>' Text="To read more..." />
        <asp:Button ID="orderbook" runat="server" CommandName="order" CommandArgument="ordernow" Text="order now" />
    </p></td>

    </tr>
</ItemTemplate>

在CodeBehind中我尝试执行以下代码: <table width="630" cellpadding="2" cellspacing="5"/> <tr style="background-color:#DBE2E2;"> <th>Image</th> <th>Book</th> <th>Description</th> </tr> <asp:PlaceHolder ID="itemPlaceholder" runat="server" /> </table> <p> <asp:DataPager ID="pageTopics" runat="server" PageSize="5"> <Fields> <asp:NextPreviousPagerField ShowFirstPageButton="false" ShowPreviousPageButton="true" ShowNextPageButton="false" /> <asp:NumericPagerField /> <asp:NextPreviousPagerField ShowFirstPageButton="false" ShowPreviousPageButton="false" ShowNextPageButton="true" ShowLastPageButton="false" /> </Fields> </asp:DataPager> </p> </LayoutTemplate> <ItemTemplate> <tr> <td valign="top"> <br /> <asp:Image ID="book_img" ImageUrl='<%# Eval("book_img") %>' Height="100" Width="100" runat="server" /> </td> <td valign="top"><p><b>Book Name: </b><asp:Label ID="book_name" runat="server" Text='<%# Eval("book_name") %>' /><br /> <b>Author: </b><asp:Label ID="book_author" runat="server" Text='<%# Eval("book_author") %>' /><br /> <p></td> <td valign="top"><p><asp:Label ID="book_short_desc" runat="server" Text='<%# Eval("book_short_desc") %>' /><br /> <b>Sku id: </b><asp:Label ID="book_squ" runat="server" Text='<%# Eval("book_squ") %>' /><br /> <b>Arrived On: </b><asp:Label ID="book_arrived" runat="server" Text='<%# Eval("book_arrived") %>' /> <asp:HyperLink ID="bookDesc" runat="server" NavigateUrl='<%# "BookDesc.aspx?id=" + Eval("book_id") %>' Text="To read more..." /> <asp:Button ID="orderbook" runat="server" CommandName="order" CommandArgument="ordernow" Text="order now" /> </p></td> </tr> </ItemTemplate>

然而,当我调试时,book_list_ItemCommand没有执行。

我真的需要帮助。

提前谢谢。

1 个答案:

答案 0 :(得分:1)

在我的头撞墙后,我实际上找到了一条路。 我会在这里发布,所以也许有类似问题的人会为自己找到解决方案。

这是我在ListView中的按钮

<asp:Button ID="orderbook" runat="server" CommandName="order" CommandArgument="ordernow" OnCommand="Order_Command" Text="order now" />

在代码背后我加了

protected void Order_Command(object sender, CommandEventArgs e)
    {
        if (e.CommandName == "order")
        {
            testLabel.Text = e.CommandName.ToString();
        }
    }

现在,当我点击按钮时,它会捕捉到该事件。