ASP.NET не может найти столбец - PullRequest
       30

ASP.NET не может найти столбец

0 голосов
/ 28 сентября 2018

Я встретил ошибку Cannot find column CustomerItemNoAppend., когда нажал кнопку поиска.

Условие: если пользователь не является внутренним, скрыть 2 столбца.Мой текущий запрос не включал столбец CustomerItemNoAppend и ManufacturerItemNoAppend.

, предложенный @ tetsuya-yamamoto, я не встретил бы ошибку Cannot find column при использовании getColumnSafe.

public IQueryable GetAllInventorySummary()
{
var query = from summary in dataContext.Q_TBL_INVENTORY_SUMMARIES

            group summary by new
            {
                poaItemNo = summary.POAItemNo,
                customerItemNo = summary.CustomerItemNo,
                manufacturerItemNo = summary.ManufacturerItemNo,
                itemDescription = summary.ItemDescription,
                uom = summary.UOM,

            } into grp
            select new
            {
                POAItemNo = grp.Key.poaItemNo,
                CustomerItemNo = grp.Key.customerItemNo,
                ManufacturerItemNo = grp.Key.manufacturerItemNo,
                ItemDescription = grp.Key.itemDescription,
                OnHandQty = grp.Sum(s => s.OnHandQty),
                UOM = grp.Key.uom,
                InventoryLocationNo = "All",
            };
return query;
}

Основной метод:

    if (profile.UserInternal != 'Y')
    {  
        RadGrid1.DataSource = inventory.GetAllInventorySummary(profile.CompanyID);
        RadGrid1.MasterTableView.GetColumnSafe("CustomerItemNoAppend").Visible = false;
        RadGrid1.MasterTableView.GetColumnSafe("ManufacturerItemNoAppend").Visible = false;
    }
    else
    {
        RadGrid1.DataSource = inventory.GetAllInventorySummary();
        RadGrid1.MasterTableView.GetColumnSafe("CustomerItemNo").Visible = false;
        RadGrid1.MasterTableView.GetColumnSafe("ManufacturerItemNo").Visible = false;  
    }
}
else
{
    if (profile.UserInternal != 'Y')
    {
        RadGrid1.DataSource = inventory.GetInventorySummaryByLocation(InventoryLocation.SelectedValue);
        RadGrid1.MasterTableView.GetColumnSafe("CustomerItemNoAppend").Visible = false;
        RadGrid1.MasterTableView.GetColumnSafe("ManufacturerItemNoAppend").Visible = false;
    }
    else
    {
        RadGrid1.DataSource = inventory.GetInventorySummaryByLocation(InventoryLocation.SelectedValue);
        RadGrid1.MasterTableView.GetColumnSafe("CustomerItemNo").Visible = false;
        RadGrid1.MasterTableView.GetColumnSafe("ManufacturerItemNo").Visible = false;
    }
}

Кнопка поиска:

protected void btnSearch_Click(object sender, EventArgs e)
{
    InventoryProvider inventory = new InventoryProvider();
    GetInventorySummary();
    DataProvider.CloseConnectionDB();
    RadGrid1.DataBind();
}

Столбцы Telerik Radgrid:

<telerik:GridBoundColumn HeaderText="Customer Item No." UniqueName="CustomerItemNo"
    HeaderStyle-Width="150px" SortExpression="CustomerItemNo" DataField="CustomerItemNo"
    DataType="System.String" />
<telerik:GridBoundColumn HeaderText="Manufacturer Item No." UniqueName="ManufacturerItemNo"
    SortExpression="ManufacturerItemNo" DataField="ManufacturerItemNo" DataType="System.String" />


            <telerik:GridBoundColumn HeaderText="Customer Item No. Appended" UniqueName="CustomerItemNoAppend"
    HeaderStyle-Width="150px" SortExpression="CustomerItemNoAppend" DataField="CustomerItemNoAppend"
    DataType="System.String" />
            <telerik:GridBoundColumn HeaderText="Manufacturer Item No. Appended" UniqueName="ManufacturerItemNoAppend"
    HeaderStyle-Width="150px" SortExpression="ManufacturerItemNoAppend" DataField="ManufacturerItemNoAppend"
    DataType="System.String" />
...