参数1:无法从'Infragistics.WebUI.UltraWebGrid.UltraGridRow'转换为'Infragistics.Web.UI.GridControls.ControlDataRecord'

时间:2012-08-14 22:36:25

标签: c# asp.net infragistics webdatagrid

我正在将一堆代码从vb.net转换为c#,我不太了解vb.net所以我遇到了很多问题。

有人可以帮我看看这里有什么问题吗?

protected void GenerateSalaryPunchesTable()
        {
            this.dgvPunchs.Rows.Clear();

            string[] DateRange = this.cboPayPeriods.SelectedItem.Text.ToString().Replace(" ", "").Split('-');

            while (Convert.ToDateTime(DateRange[0]) <= Convert.ToDateTime(DateRange[1]))
            {
                if (Convert.ToDateTime(DateRange[0]).DayOfWeek != DayOfWeek.Saturday & Convert.ToDateTime(DateRange[0]).DayOfWeek != DayOfWeek.Sunday)
                {
                    Infragistics.WebUI.UltraWebGrid.UltraGridRow nRow = new Infragistics.WebUI.UltraWebGrid.UltraGridRow();

                    nRow.Cells.Add();
                    // Date Cell
                    nRow.Cells.Add();
                    // Worked CB
                    nRow.Cells.Add();
                    // Vacation CB
                    nRow.Cells.Add();
                    // Sick CB
                    nRow.Cells.Add();
                    // Holiday CB
                    nRow.Cells.Add();
                    // Error

                    nRow.Key = Convert.ToDateTime(DateRange[0].ToString()).ToShortDateString();
                    nRow.Cells[0].Value = Convert.ToDateTime(DateRange[0].ToString()).ToShortDateString();
                    nRow.Cells[1].Value = 0;
                    nRow.Cells[2].Value = 0;
                    nRow.Cells[3].Value = 0;
                    nRow.Cells[4].Value = 0;
                    nRow.Cells[5].Value = "";

                    this.dgvPunchs.Rows.Add(nRow);
                }

                DateRange[0] = Convert.ToDateTime(DateRange[0]).AddDays(1);
            }

        }

这是给我的错误:

错误4“Infragistics.Web.UI.GridControls.ControlDataRecordCollection.Add(Infragistics.Web.UI.GridControls.ControlDataRecord)”的最佳重载方法匹配有一些无效的参数
错误5参数1:无法从'Infragistics.WebUI.UltraWebGrid.UltraGridRow'转换为'Infragistics.Web.UI.GridControls.ControlDataRecord'

以下是控件:

<ig:WebDataGrid ID="dgvPunchs" runat="server" Height="350px" Width="400px">
                        </ig:WebDataGrid>

它是从VB.net和旧版本的Infragistics转换而来的。到目前为止,我无法弄清楚这一点。

编辑:

我尝试了这个并且它也没有用......

Infragistics.Web.UI.GridControls.ControlDataRecord nRow =
  Infragistics.Web.UI.GridControls.ControlDataRecord();
//Infragistics.WebUI.UltraWebGrid.UltraGridRow nRow = new Infragistics.WebUI.UltraWebGrid.UltraGridRow();

1 个答案:

答案 0 :(得分:1)

发生异常是因为您将UltraGridRow添加到WebDataGrid或WebHierarchicalDataGrid的rows集合,而UltraGridRow与UltraWebGrid一起使用。

由于您更改了正在使用的网格,因此代码不会有1:1的映射,因此这会增加转换的复杂性。你最好看看你想要完成什么,然后编写新网格控件所需的代码。

通常对于数据行,WebDataGrid使用GridRecord对象,您可以测试创建其中一个以向网格添加新行。

请注意,从您调用的方法看来,您正在动态创建网格的所有数据,如果是这种情况,那么您最好创建一个DataTable并将网格绑定到DataTable而不是直接使用网格,因为网格被设计为绑定到数据。