我有许多DetailsView-Controls,其可见性我用简单的jQuery函数切换。粗略轮廓:用户按下“PERSONAL”链接,并显示包含“PERSONAL”的DetailsView,而所有其他DetailsView - <divs>
消失。隐藏所有这些<divs>
的默认状态。
现在存在以下问题:一旦用户按下DetailsView-Control的生成的EDIT按钮,该页面将获得回发,并且所有div都会再次隐藏。
我看到以下可能性(也许你看到更多?):
'onclick=javascript: ...'
),这意味着我还需要添加“UPDATE”和“CANCEL”按钮'onclick=javascript: ...'
- 属性添加到现有的EDIT按钮当然我更喜欢#3;),或者有人有更好的主意? #1的问题是我的jQuery有点'不太好',#2的问题是我必须为相当多的DV创建这些按钮/功能。
提前致谢! :)
编辑;顺便说一句,这里是控制我的jQuery片段
<script type="text/javascript">
function toggleVisibility(newSection) {
$(".details_container").not("#" + newSection).hide();
$("#" + newSection).show();
}
</script>
我要控制的所有div都使用“details_container”类。也许有两行代码可以添加某种“this-is-my-active-div”,这可以轻松完成吗?
答案 0 :(得分:0)
你能为这个按钮提供aspx代码吗?
假设它是ImageButton
在RowDataBound
事件
((ImageButton)e.Row.Cells[0].Controls[0]).Attributes.add("onclick", "return YourFunction();");
答案 1 :(得分:0)
如果你只需要关心显示和隐藏Div,我建议设置一个全局变量来知道哪个div是可见的.... 例如 public ind VisibleDivId = 1 //这意味着第一个div是可见的(将其设置为公共)
在编辑按钮上单击事件设置变量值.i.e。如果单击编辑第二个DetailsView,则设置VisibleDivId = 2
在Body Load中调用Javascript函数来隐藏Divs
function ShowHide()
{
var DivId=<%=VisibleDivId %>
//Code to Show Hide Div.
}
<强>否则强> 您也可以从编辑事件中调用Javascript函数
Page.ClientScript.RegisterStartupScript(GetType(), "Key", "ShowHide();", true);