【发布时间】:2013-07-29 15:20:13
【问题描述】:
我在两个 radtab 中有两个嵌套的网格视图,对于这两个嵌套的视图,我有一个用于展开和折叠的简单 JavaScript。
<script type="text/javascript">
function collapseExpand(obj) {
var gvObject = document.getElementById(obj);
var imageID = document.getElementById('image' + obj);
if (gvObject.style.display == "none") {
gvObject.style.display = "inline";
imageID.src = "~/ims/Images/bullet_toggle_minus.jpg";
}
else {
gvObject.style.display = "none";
imageID.src = "~/ims/Images/bullet_toggle_plus.jpg";
}
}
Java 脚本在第一个选项卡的第一个 RadGrid 上运行良好。但是,它不适用于第二个选项卡。我认为控件无法转移到第二个网格。我认为我的问题类似于
我应用了那里列出的所有方法,但仍然无法正常工作。
<script type="text/javascript">
function load() {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(collapseExpand);
}
function collapseExpand(obj) {
var gvObject = document.getElementById(obj);
var imageID = document.getElementById('image' + obj);
if (gvObject.style.display == "none") {
gvObject.style.display = "inline";
imageID.src = "~/ims/Images/bullet_toggle_minus.jpg";
}
else {
gvObject.style.display = "none";
imageID.src = "~/ims/Images/bullet_toggle_plus.jpg";
}
}
谁能告诉我要编写什么代码来将 javascript 的控制权转移或传递给第二个选项卡?
另外,我正在使用 Radtabs 和 RadPageView 在两个选项卡中显示两个网格。
我在 radtab 中调用 Collapse Expand
<telerik:RadTabStrip ID="RadTabStrip1" runat="server" SelectedIndex="0" MultiPageID="RadMultipage1">
<Tabs>
<telerik:RadTab Text="Tab1" PageViewID="RadPageView1" OnLoad="Load1">
</telerik:RadTab>
<telerik:RadTab Text="Tab2" PageViewID="RadPageView2" >
</telerik:RadTab>
</Tabs>
</telerik:RadTabStrip>
<telerik:RadMultiPage ID="RadMultipage1" runat="server">
<telerik:RadPageView ID="RadPageView1" runat="server" Width="100%" TabIndex="0">
<telerik:RadGrid ID="View1" runat="server" AutoGenerateColumns="False" Width="100"
BackColor="White" BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px"
OnItemDataBound="RadGrid2_ItemDataBound" >
<MasterTableView DataKeyNames="id">
<Columns>
<telerik:GridTemplateColumn>
<ItemTemplate>
<a href="javascript:collapseExpand('id_<%# Eval("id") %>');">
<img id="imageSubId_<%# Eval("id") %>" alt="Click to show/hide orders" border="0" src="Images/bullet_toggle_plus.jpg" />
</a>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn DataField="id" HeaderText="ID"/>
<telerik:GridBoundColumn DataField="fname" HeaderText="First Name"/>
<telerik:GridBoundColumn DataField="lname" HeaderText="Last Name"/>
<telerik:GridBoundColumn DataField="DOB" HeaderText="Date of Birth"/>
<telerik:GridTemplateColumn>
<ItemTemplate>
<tr>
<td colspan="100%">
<div id="id_<%# Eval("id") %>" style="display: none; position: relative; left: 10px;">
<telerik:RadGrid ID="View2" runat="server" AutoGenerateColumns="false" Width="400"
GridLines="None" >
<MasterTableView >
<Columns>
<telerik:GridBoundColumn DataField="fname" HeaderText="First Name" />
<telerik:GridBoundColumn DataField="mname" HeaderText="Middle Name" />
<telerik:GridBoundColumn DataField="lname" HeaderText="Last Name" />
<telerik:GridTemplateColumn>
<ItemTemplate>
<asp:CheckBox ID="checkselect" runat="server" />
</ItemTemplate>
<HeaderTemplate>
<asp:Button ID="Button4" runat="server" Text="Remove" CommandName="Split" OnClick="Button4_Click" />
</HeaderTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView >
</telerik:RadGrid>
</div>
</td>
</tr>
</ItemTemplate>
</telerik:GridTemplateColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
</telerik:RadPageView>
<telerik:RadPageView ID="RadPageView2" runat="server" Width="100%">
Same Code
</telerik:RadPageView>
</telerik:RadMultiPage>
【问题讨论】:
-
你在哪里调用collapseExpand?
-
@MaxPRafferty 我在 Radtab 中调用它。我没有为此添加代码,因为问题会变得很大。如果您可以聊天,我可以亲自将代码发送给您吗?
-
我最关心的是你在转发器中传递给 obj 的内容 - 因为它适用于第一个实例而不是第二个实例,听起来你可能设置了多个相同的 ID 值。
-
@MaxPRafferty 我将整个代码添加到问题中。我在 RadPageView2 中有完全相同的代码,只是第二个的数据更改。但是,javascript 应该可以正常工作。但那没有发生。
-
在您呈现的 HTML 中,那些“ID_”锚是否正确且唯一地显示在每一行?
标签: javascript tabs telerik jquery-ui-tabs rad