如何让我的 ASP 表控件显示/隐藏?(并不像听起来那么简单)
How can I get my ASP table control to show/hide? (not as simple as it sounds)
好吧,我对 ASP.NET 相当陌生,但我想我明白发生了什么。我的任务是在他们中构建报告。到目前为止,除了这个问题之外,我已经记下了所有内容。
我使用数据绑定到 DataRowCollection 的中继器,并通过它以编程方式构建表。我有类似的东西:
Private Sub SubAcctGrid_OnItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
Dim currentrow = TryCast(e.Item.DataItem, DataRow)
Dim acctSummaryTable = New Table With {.ID = "acctSummary" & e.Item.ItemIndex, .CssClass = "minisub_acct_table"}
Dim drillDownTable = New Table With {.ID = "drillDownTable" & e.Item.ItemIndex, .CssClass = "drilldown_table"}
' Build both tables here
acctSummaryTable.Rows(1).Cells(0).Attributes.Add("onclick", String.Format("displayDetailTable('{0}')", drillDownTable.ID))
acctSummaryTable.Rows(1).Cells(1).Attributes.Add("onclick", String.Format("displayDetailTable('{0}')", drillDownTable.ID))
e.Item.Controls.Add(acctSummaryTable)
e.Item.Controls.Add(drillDownTable)
End If
End Sub
我有一个Javascript函数,它接受元素ID并隐藏或显示表:
function displayDetailTable(tableID) {
var table = document.getElementById(tableID)
if (table.style.display == "none") {
table.style.display = "table";
}
else {
table.style.display = "none";
}
}
不过,对于我的一生,我无法传递正确的元素 ID。据我了解,为了唯一性,ASP.NET 将我分配的 ID 转换为一些巨大的长 ID。例如,我分配了一个 ID 为"drillDownTable0"的表,它在 HTML 标记中吐出"ctl00_drillDownTable0"。它第一次工作,但随后中继器被绑定到新行,然后我得到"ctl01_drillDownTable0",依此类推。
我已经尝试了ClientID,ID和UniqueID,我将属性添加到上面的代码中的单元格中,但它们没有执行我需要的操作。
有什么方法可以获取该ID并将其传递给Javascript函数吗?或者我想一个更好的问题是:什么时候生成 ID,我可以在页面以 HTML 呈现之前访问它们吗?
您可能正在寻找
ClientID
:
String.Format("displayDetailTable('{0}')", drillDownTable.ClientID)
除此之外,我建议在 Repeater 的 ItemCreated
事件中动态创建控件。必须在每次回发时重新创建所有动态控件。 仅在数据绑定时调用ItemDataBound
,而ItemCreated
在每次回发时调用。
编辑:我刚刚看到你已经尝试过ClientID。但这可能是在 ItemdataBound 中创建表导致的问题。
相关文章:
- 简单的javascript在Shopify中不起作用
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 如何制作简单的php'在Javascript中的foreach等价物
- Highslide(iframe的侦听器)
- 如何在for循环中添加事件侦听器
- 选项卡侦听器未被来自后台脚本的消息激活
- JQuery:向多个匹配结果添加换行符的最简单方法
- Phonegap:监听页面并关闭InAppBrowser返回index.html的简单方法
- 如何在 angularjs 中的简单获取请求 json 之后添加事件侦听器
- 如何在 JavaScript 中实现一个简单的优先级侦听器模式
- 如何让我的 ASP 表控件显示/隐藏?(并不像听起来那么简单)
- HTML、PHP、JavaScript——如何为数据库中的每个单独记录制作一个按钮?看起来很简单,但事实并非如此;不起作
- Wicket:资源路径听起来不起作用
- 带有侦听器和回调的简单计数器
- 在不同的网页之间分发表单元素,看起来很简单,但无法修复
- 简单事件侦听器不工作-JS
- 有人能用最简单的术语解释一下如何使用事件侦听器吗?
- 为链接单击创建简单的侦听器
- 这看起来很简单,但是我在jquery API中找不到所需的函数
- 最简单的方法,使禁用按钮看起来禁用jQuery