【问题标题】:Rendered code of Gridview in the Updatepanel Become InvisibleUpdatepanel中Gridview的渲染代码变得不可见
【发布时间】:2010-03-19 14:41:54
【问题描述】:

我在更新面板中有一个 gridview 控件。当我运行应用程序并查看生成的源代码时,没有关于 gridview 的源代码。所以,我无法接近 gridview 中的元素。

我的问题是,gridview 的渲染代码在哪里,我该如何处理其中的控件?

【问题讨论】:

    标签: c# asp.net gridview updatepanel


    【解决方案1】:

    您是否尝试通过浏览器查看源代码?如果您想从 gridview 中访问您的控件,这绝不是一个好主意。

    从 gridview 中访问控件的方法是在后面的代码中找到它们。如果您需要将它们传递给某些客户端脚本,您应该使用控件的ClientID 属性。这是我在 gridview 的 RowDataBound 事件中所做的一个示例。

    protected void checkGrid_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            Button moveButton = (Button)e.Row.Cells[9].Controls[1];            
            moveButton.Attributes.Add("onclick","someJavaScript('"+moveButton.ClientID+"');");
        }
    }
    

    编辑

    为了向您展示您必须在客户端执行的操作,这里有一个使用 ClientID 的简单 javascript 函数

    function someJavaScript(buttonID)
    {
      var button = document.getElementByID(buttonID);
      button.Click();
    }
    

    你也可以使用 $get 函数说

    var button = $get(buttonID);
    

    【讨论】:

    • 感谢您的回复。我已经用过你给我看的方式了。这工作得很好。但是我在gridview中有一个按钮,在gridview中有一个复选框。当我单击按钮时,必须选中所有复选框。你有办法解决这个问题吗?
    【解决方案2】:

    澄清一下:您已经在网络浏览器中打开页面,然后按“查看源代码”并且您无法找到与 GridView 对应的 HTML 表,而它存在于屏幕上? 如果是这样,那就可以理解了——欢迎来到动态 html 的 AJAX 世界。 要查看表格,请使用:

    • 或 FireFox+firebug 插件
    • 或 IE + 开发工具栏
    • 或铬

    所有这些工具都有菜单:Inspect Element - 按下它可以看到真实的 DOM 树。

    相对于“接近”的问题。 ASP.Net 控件对所有控件都有非常有用的方法属性 ClientID - 此 id 包含非人类字符串如何命名元素,包括所有父母姓名容器。使用此 ID,您可以通过 document.getElementByID 定位元素

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多