【问题标题】:Gridview inside a gridview - using a parent row value as a parameter in ASP.NET?网格视图中的网格视图 - 在 ASP.NET 中使用父行值作为参数?
【发布时间】:2010-10-15 16:47:35
【问题描述】:

在此处跟进问题:Complex editing on a gridview in C#

我有以下示例网格视图:

我想要做的是,每当我点击“编辑”时,“离开时间”列就会变成一个网格视图,其中会显示相应日期的“小时数”。但是,我不知道如何检索相应的日期作为子 GridView 的数据源的参数。

例如,我试过:

<SelectParameters>
                <asp:ControlParameter ControlID="cphContent$EntryDate" Name="pDate"
                     PropertyName="MyDate" Type="DateTime" />
</SelectParameters>

但它不起作用,即使它起作用了,我怎么知道它正在检索所选行的相应日期?

如果有人知道更好的方法,将不胜感激。

提前致谢, 伊顿B.

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    我认为您不能以这种方式使用 gridview BoundField 作为控制参数。我会做的是:

    1. 在父 GridView 中将日期设置为数据键
    2. 为父 GridView RowEditing 事件添加事件处理程序。
    3. 在该事件中,将数据源的 SelectParameter 设置为编辑行的日期

    父 GridView 看起来像:

    <asp:GridView ID="ParentGridView" runat="server" DataSourceID="ParentObjectDataSource"
        OnRowEditing="ParentGridView_RowEditing" DataKeyNames="Date">
    

    然后您将拥有一个子 GridView 的数据源,如下所示:

    <asp:ObjectDataSource ID="ChildObjectDataSource" runat="server" SelectMethod="Blah" TypeName="Blah">
        <SelectParameters>
            <asp:Parameter Type="DateTime" Name="Date" />
        </SelectParameters>
    </asp:ObjectDataSource>
    

    然后在后面的代码中,您将拥有这样的 RowEditing 事件处理程序:

    protected void ParentGridView_RowEditing(object sender, GridViewEditEventArgs e)
    {
        ChildObjectDataSource.SelectParameters["Date"].DefaultValue = GridView1.DataKeys[e.NewEditIndex][0].ToString();
    }
    

    【讨论】:

    • 试一试,谢谢。后面的代码,你说的不是ChildObjectDataSource.SelectParameters吗?
    • 谢谢,是的,我做到了。我编辑了答案以反映该更正。
    • 谢谢,到目前为止,您的解决方案看起来不错。我不再遇到错误,您所做的事情是有道理的。但是,单击“编辑”后,“叶子”列实际上是空的。这是我正在使用的子网格视图的标记:pastebin.com/nUkCy4iu
    • 在 odsOutHours 的 SelectMethod 中放置一个断点,看看它返回了什么。您比较日期的方式有问题吗?
    • 就是这样!我在比较标准中犯了一个错误。惊人的。现在我得到了显示的网格视图并能够继续前进......期待另一个问题很快从我这里弹出:P 谢谢!
    猜你喜欢
    • 2011-07-12
    • 2020-09-28
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多