0
我有一個顯示在模式彈出式擴展器中的控件。該控件包含RadGrid元素。我必須使用FilterTemplate創建一個自定義過濾器,並使用正確的命令名稱設置發送回調。但是,模式彈出式擴展程序不顯示正在調用的Show()方法。無法在radgrid過濾器命令後顯示模式彈出式擴展器
也許最好用代碼展示它。在Default.aspx的
模式彈出擴展:
<asp:Panel ID="pmpSetDostopIS" runat="server" Width="80%" Height="80%" ScrollBars="Vertical" CssClass="modalPopup" Style="display: none">
<div align="center">
<asp:Label ID="Label2" runat="server" Text="DostopIS" Font-Bold="True"></asp:Label>
</div>
<hr />
<asp:Button ID="btnShowPopupSetDostopIS" runat="server" Style="display: none" />
<asp:ModalPopupExtender ID="pmpDostopISExtender" runat="server" TargetControlID="btnShowPopupSetDostopIS"
PopupControlID="pmpSetDostopIS" BackgroundCssClass="modalBackground" DropShadow="false">
</asp:ModalPopupExtender>
<uc7:ppDostopISEdit ID="ucdeDostopIS" runat="server" />
</asp:Panel>
ppDostopISEdit.ascx:
<telerik:RadGrid ID="rgDostopISLotusNotes" AllowMultiRowSelection="True" AllowPaging="False" AllowSorting="True" AllowAutomaticDeletes="False"
DataSourceID="odsLNDostop" EnableLinqExpressions="false" GridLines="None" runat="server">
<MasterTableView AutoGenerateColumns="False" AllowFilteringByColumn="True" TableLayout="Fixed" DataKeyNames="SLNS_ID_LN_SKUPINA" DataSourceID="odsLNDostop">
<Columns>
<telerik:GridTemplateColumn AllowFiltering="false" UniqueName="SELECTION">
<HeaderStyle Width="30px" />
<HeaderTemplate>
<asp:CheckBox id="chkbxLNAll" OnCheckedChanged="chkbxLNAll_CheckedChanged" AutoPostBack="True" runat="server"></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="chkbxLNSelect" Checked='<%# Bind("CHECKED") %>' OnCheckedChanged="chkbxSelect_CheckedChanged" AutoPostBack="True" runat="server"></asp:CheckBox>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="NAZIV" HeaderText="Skupina" SortExpression="NAZIV" UniqueName="NAZIV" AutoPostBackOnFilter="false" CurrentFilterFunction="Contains" FilterControlWidth="200px" FilterDelay="500" ShowFilterIcon="true">
<ItemStyle Wrap="False" />
<FilterTemplate>
<telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
<script type="text/javascript">
function filterLnGrid(sender, args) {
var strKey = args.get_keyCode();
if (strKey == "13") {
var tableView = $find("<%# CType(Container, GridItem).OwnerTableView.ClientID %>");
tableView.filter("NAZIV", sender.get_value(), "Contains");
}
}
</script>
</telerik:RadScriptBlock>
<asp:Literal runat="server" Text="Išči"></asp:Literal>
<telerik:RadTextBox runat="server" Text="" ClientEvents-OnKeyPress="filterLnGrid" AutoPostBack="false"></telerik:RadTextBox>
</FilterTemplate>
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
<ClientSettings EnableRowHoverStyle="true">
</ClientSettings>
</telerik:RadGrid>
ppDostopISEdit.ascx.vb(節選):
Protected Sub rgDostopISLotusNotes_ItemCommand(ByVal sender As Object, ByVal e As GridCommandEventArgs) Handles rgDostopISLotusNotes.ItemCommand
Call m_pmpExtender.Show()
End Sub
現在我堅持,因爲同樣的事情適用於其他RadGrid上的自定義命令。
編輯:
進一步的調試表明這是雙重回發問題。但是,這兩個回發都是由這個相同的RadGrid發佈的。一個是Filter ItemCommand,另一個不是,所以我假設它是由對RadGrid應用過濾器引起的。
雖然沒有幫助:( – 2011-05-06 07:02:20