1

我有许多 DetailsView-Controls,我用一个简单的 jQuery 函数来切换它们的可见性。粗略的轮廓:用户点击“个人”链接,包含“个人”的详细信息视图出现,而所有其他详细信息视图<divs>消失。所有这些的默认状态<divs>都是隐藏的。

现在出现了以下问题:一旦用户按下DetailsView-Control 的生成的EDIT 按钮,页面就会得到回发,并且所有的div 都被再次隐藏。

我看到以下可能性(也许你看到更多?):

  1. 更改 jQuery 函数,即 s 需要显式隐藏
  2. 不要让编辑按钮自动创建,而是为每个 DV 添加一个自定义按钮(带有'onclick=javascript: ...'),这意味着我还需要添加“更新”和“取消”按钮
  3. 找到一种方法将'onclick=javascript: ...'-property 添加到现有的 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”,这很容易做到吗?

4

2 回答 2

0

你能提供这个按钮的aspx代码吗?

假设它是 ImageButtonRowDataBound事件

 ((ImageButton)e.Row.Cells[0].Controls[0]).Attributes.add("onclick", "return YourFunction();");
于 2012-08-24T09:21:37.557 回答
0

如果你只需要关心显示和隐藏 div,我建议设置一个全局变量来知道哪个 div 是可见的......例如 public ind VisibleDivId=1 //这意味着第一个 div 是可见的。(将其设置为 Public )

在编辑按钮单击事件上设置变量值。即如果单击第二个 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);
于 2012-08-24T09:28:43.390 回答