在此处跟进问题:Complex editing on a gridview in C#
我有以下示例gridview:
我想要做的是每当我点击“编辑”时,离开时间栏就会变成一个网格视图,其中显示相应日期的小时数。但是,我不知道如何检索相应的日期作为子GridView的dataSource的参数。
例如,我尝试过:
<SelectParameters>
<asp:ControlParameter ControlID="cphContent$EntryDate" Name="pDate"
PropertyName="MyDate" Type="DateTime" />
</SelectParameters>
但它不起作用,即使它确实如何告诉它检索所选行的相应日期?
如果有人知道更好的方法,我们将非常感激。
提前致谢, 伊顿B。
答案 0 :(得分:2)
我认为你不能以这种方式使用gridview BoundField作为控制参数。我会做的是:
父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();
}