Asp.net linkbutton в radlistview не запускает события - PullRequest
0 голосов
/ 05 ноября 2011

У меня есть RadListView, а в списке есть кнопка ссылки asp.net. Я хочу динамически установить PostBackUrl кнопки ссылки. Я могу добиться этого, если найду элемент управления linkbutton в событии ItemDataBound списка. Но, делая это, когда я в итоге нажимаю на кнопку ссылки, событие ItemCommand списка не запускается. Мне нужно, чтобы событие itemCommand было запущено, чтобы я мог взять значение datakeyomle элемента, который щелкнул, и установить его в переменную сеанса для передачи на страницу postbackurl кнопки ссылки, но установка postbackurl при загрузке страницы приводит к тому, что кнопка ссылки не срабатывает любые события.

<telerik:RadListView ID="lstVwWebpageList" runat="server" EnableViewState="true" ItemPlaceholderID="webpageContainer" AllowPaging="true" DataKeyNames="id" Skin="WebBlue" OnItemDataBound="lstVwWebpageList_ItemDataBound" OnPageIndexChanged="lstVwWebpageList_PageChange" Width="607px" OnItemCommand="lstVwWebpageList_ItemCommand">
<LayoutTemplate>
    <table cellpadding="0" cellspacing="0">
        <tr>
        <td>
            <asp:PlaceHolder ID="webpageContainer" runat="server" />
        </td>
        </tr>
        <tr>
        <td>
        <telerik:RadDataPager ID="Pager" runat="server" PagedControlID="lstVwWebpageList" PageSize="50" Skin="WebBlue">
            <Fields>
                <telerik:RadDataPagerButtonField FieldType="FirstPrev" />
                <telerik:RadDataPagerButtonField FieldType="Numeric" />
                <telerik:RadDataPagerButtonField FieldType="NextLast" />
            </Fields>
        </telerik:RadDataPager>
        </td>
        </tr>
    </table>
</LayoutTemplate>

<ItemTemplate>
    <fieldset style="float: left; width: 300px;">
        <table cellpadding="0" cellspacing="0">
            <tr>
                <td>
                    <table cellpadding="0" cellspacing="0">
                        <tr>
                            <td style="width: 25%;">
                                <b>Name:</b>
                            </td>
                            <td style="width: 75%;">
                                <asp:Label ID="lblName" runat="server" Text='<%# Eval("name") %>'></asp:Label> 
                            </td>
                        </tr>
                        <tr>
                            <td style="width: 25%;">
                                <b>Page:</b>
                            </td>
                            <td style="width: 75%;">
                                <asp:LinkButton ID="pagenameLink" runat="server" OnClick="test" OnCommand="testing" CommandName="LinkClicked" Text='<%# Eval("pagename") %>' PostBackUrl='<%# "EditWebpage.aspx?name=" + Eval("name") + "&page=" + Eval("pagename") %>'></asp:LinkButton>                                    
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </fieldset>
</ItemTemplate>

protected void lstVwWebpageList_ItemCommand(object sender, RadListViewCommandEventArgs e)
{
   if (e.CommandName == "LinkClicked")
   {
       RadListViewDataItem item = (RadListViewDataItem)e.ListViewItem;
       Session["linkID"] = item.DataItem;
   }
}

1 Ответ

0 голосов
/ 05 ноября 2011

попробуйте

<asp:LinkButton runat="server" 
    ID="pagenameLink" 
    Text='<%# Eval("pagename") %>' 
    CommandName="LinkClicked" 
    CommandArgument='<%#Eval("name") + ", " + Eval("pagename") %>' />
...