【问题标题】:Nesting gridview/formview in webuser control inside a parent gridview在父gridview内的webuser控件中嵌套gridview/formview
【发布时间】:2009-12-09 10:35:57
【问题描述】:

我正在为我们的人力资源部门开发一个 ASP.net 2 网站,该网站的首页有一个我们所有部门与薪酬等级的矩阵,每个单元格中都有指向该部门在该等级的所有工作的链接。 这些链接会将您带到一个动态填充网格视图的页面,因为每个部门都有不同数量的团队,例如财务有一个团队,IT 有四个。每个单元格都插入了一个网络用户控件。 用户控件有一个 sql 数据源,拉出所有职位和主键,填充一个表单视图,带有一个链接按钮,其文本值绑定到职位。 (我使用的是用户控件,因为此页面也将用于显示搜索某个部门的某个等级范围内的所有角色的结果,并且会有不同的行数。

我可以很好地显示所有内容,但是当我单击链接按钮时,不是运行我在 Click 事件中放置的代码,而是页面回发而不触发任何事件。

环顾四周,看来我必须在某个地方放置一个 addhandler 行,但我不确定在哪里,谁能给我一些指示? (请相当笨拙,我在 ASP 方面还没有太多经验,并且正在尝试它。我也在使用 VB,但 C# 不是问题)

这就是我将控件插入父网格的方式,我错过了什么明显的东西吗?

        For row As Int16 = 0 To dgvRoleGrid.Rows.Count - 1
            tempwuc = New UserControl
            tempwuc = LoadControl("wucRoleList.ascx")
            tempwuc.ID = "wucRoleList" & col.ToString
            tempwuc.EnableViewState = True
            dgvRoleGrid.Rows(row).Cells(col).Controls.Add(tempwuc)
            CType(dgvRoleGrid.Rows(row).FindControl(tempwuc.ID), wucRoleList).specialtyid = specid
            CType(dgvRoleGrid.Rows(row).FindControl(tempwuc.ID), wucRoleList).bandid = dgvRoleGrid.DataKeys(row)(0)
            CType(dgvRoleGrid.Rows(row).FindControl(tempwuc.ID), wucRoleList).familyid = Session("familyid")


        Next

【问题讨论】:

    标签: asp.net gridview


    【解决方案1】:

    如果不查看更多代码就很难说,但未从转发器中的控件接收事件的最常见原因是您正在重新绑定数据而不是依赖于 ViewState。你的代码是不是像这样:

    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!Page.IsPostBack)  // <--- YOU REALLY NEED THIS!
            {
                DoDataBinding();
            }
    
        }
    }
    

    您是否缺少 IsPostBack 检查?另外...如果您已经有了控件的句柄,为什么还要使用 FindControl?声明/加载控件时转换为适当的类型。

    【讨论】:

      【解决方案2】:

      我这样做的原因是我对这一切还很陌生,并且用任何似乎可行的方法来实现它;由于我面临的最后期限,我真的没有时间找到最优雅的解决方案,只要它稳定且有效,就可以了。

      有一个 ispostback 检查,它不会在回发时重新绑定数据源。

      我已经通过使用树视图解决了这个问题,使用数据绑定事件来修改回发 URL 以包含该值作为参数,但我仍然想弄清楚如何让它正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-21
        • 1970-01-01
        • 2021-08-30
        相关资源
        最近更新 更多