2016-07-27 2 views
1

Я уверен, что кто-то будет достаточно любезен, чтобы помочь мне с этим, пока у меня есть недостаток здравомыслия :(Telerik RadGrid вызывает исключение значения в режиме редактирования?

У меня есть radgrid, databound через запрос LINQ. Он отображается так, как должен, и я добавил кнопка детали, работает нормально, но когда я нажал на кнопку редактирования я получаю:. «JavaScript ошибка выполнения: Sys.WebForms.PageRequestManagerServerErrorException: Выбор из диапазона имя параметра: значение»

Я корпел над значениями I Получается, и я не вижу проблемы, явной или нет. Моя сетка следует (извините, это немного беспорядок):

<telerik:RadGrid ID="RadGrid1" runat="server" AutoGenerateColumns="False" 
     CellSpacing="0" GridLines="None" AllowPaging="True" 
     DataMember="id" 
     onneeddatasource="RadGrid1_NeedDataSource" 
      OnUpdateCommand="RadGrid1_UpdateCommand" PageSize="20" 
      onitemcommand="RadGrid1_ItemCommand" > 
<MasterTableView DataKeyNames="status,charity,make,model,year,vin,date,id,salePrice,bid,note" 
      EditMode="EditForms" EnableViewState="True"> 

<CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> 

<RowIndicatorColumn Visible="True" FilterControlAltText="Filter RowIndicator column"> 
<HeaderStyle Width="20px"></HeaderStyle> 
</RowIndicatorColumn> 

<ExpandCollapseColumn Visible="True" FilterControlAltText="Filter ExpandColumn column"> 
<HeaderStyle Width="20px"></HeaderStyle> 
</ExpandCollapseColumn> 

    <Columns> 
    <telerik:GridButtonColumn CommandName="History" Text="History" UniqueName="detailBtn" HeaderText="History" HeaderButtonType="PushButton" AutoPostBackOnFilter="True"> 
         </telerik:GridButtonColumn> 
    <telerik:GridBoundColumn HeaderText="Charity" ItemStyle-Width="140px" FilterControlAltText="Filter column2 column" 
      UniqueName="column3" DataType="System.String" DataField="charity" ReadOnly="True"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="VIN" ItemStyle-Width="140px" FilterControlAltText="Filter column6 column" 
      UniqueName="column7" DataType="System.String" DataField="vin" > 
<ItemStyle Width="140px"></ItemStyle> 
      </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Year" ItemStyle-Width="140px" FilterControlAltText="Filter column2 column" 
      UniqueName="column2" DataType="System.Int32" DataField="year"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Make" ItemStyle-Width="140px" FilterControlAltText="Filter column column" 
      UniqueName="column" DataType="System.String" DataField="make"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Model" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" 
      UniqueName="column1" DataType="System.String" DataField="model"> 
<ItemStyle Width="140px"></ItemStyle> 
      </telerik:GridBoundColumn>    
      <telerik:GridBoundColumn HeaderText="Last Update" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" 
      UniqueName="column5" DataType="System.DateTime" DataField="date" ReadOnly="True"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Min. Bid" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" 
      UniqueName="column8" DataType="System.Decimal" DataField="bid" DataFormatString="{0:C}" > 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Sale Price" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" 
      UniqueName="column6" DataType="System.Decimal" DataField="salePrice" DataFormatString="{0:C}" Display="False"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridBoundColumn HeaderText="Notes" ItemStyle-Width="140px" FilterControlAltText="Filter column1 column" 
      UniqueName="unsoldNotesColumn" DataType="System.String" DataField="note" Display="True"> 
<ItemStyle Width="140px"></ItemStyle> 
     </telerik:GridBoundColumn> 
     <telerik:GridTemplateColumn HeaderText="Latest Status" ItemStyle-Width="240px"> 


         <ItemTemplate> 

          <%#DataBinder.Eval(Container.DataItem, "Status")%> 

         </ItemTemplate> 


         <EditItemTemplate> 

          <telerik:RadComboBox RenderMode="Lightweight" runat="server" ID="updateComboBox" DataTextField="Status" 

           DataValueField="ID" DataSourceID="LinqDataSource1" SelectedValue='<%#Bind("ID") %>' AutoPostBack="True" 
           > 

          </telerik:RadComboBox>       

         </EditItemTemplate> 


<ItemStyle Width="240px"></ItemStyle> 


        </telerik:GridTemplateColumn> 

        <telerik:GridEditCommandColumn FooterText="EditCommand footer" UniqueName="EditCommandColumn" 

         HeaderText="Edit" HeaderStyle-Width="100px" UpdateText="Update"> 

<HeaderStyle Width="100px"></HeaderStyle> 

        </telerik:GridEditCommandColumn> 



    </Columns> 

<EditFormSettings> 
<EditColumn FilterControlAltText="Filter EditCommandColumn column"></EditColumn> 
</EditFormSettings> 
</MasterTableView> 

<FilterMenu EnableImageSprites="False"></FilterMenu> 
    </telerik:RadGrid> 

Мой отделенного кода, в том случае, если имеет отношение это:

private void LoadUnsoldVehicleGrid() 
     { 


      CAAData2DataContext db = new CAAData2DataContext(); 


      var ud = db.Updates 

      .Where(c => c.Sold.Equals(false)) 
      .GroupBy(c => c.Vehicle) 
      .Select(x => x.OrderByDescending(y => y.TimeStamp).First()).ToList(); 

      var unSoldVehicles = (from u in ud 
            join v in db.Vehicles on 
             u.Vehicle equals v.ID 
            join c in db.Customers on 
            v.Charity equals c.ID 
            select new 
           { 
            status = u.Status, 
            make = v.Make, 
            model = v.Model, 
            Year = v.Year, 
            vin = v.VIN_, 
            charity = c.Name, 
            date = u.TimeStamp, 
            id = u.Vehicle, 
            salePrice = v.SalePrice, 
            bid = v.MinimumBid, 
            note=u.Note 
           }).OrderBy(z=>z.charity).ToList(); 

      RadGrid1.DataSource = unSoldVehicles; 



     } 

Что совершенно удручает, что ... это работает. Я, должно быть, кое-что поменял, и к тому времени, когда я понял, что все это ... ugh

Я бы сказал, что буду благодарен за любую проницательность!

Пол

ответ

1
<telerik:RadComboBox RenderMode="Lightweight" runat="server" ID="updateComboBox" DataTextField="Status" DataValueField="ID" DataSourceID="LinqDataSource1" SelectedValue='<%#Bind("ID") %>' AutoPostBack="True"> 
</telerik:RadComboBox> 

Скорее всего, данная проблема возникает из выше блока кода. То, что вы можете сделать, это установить SelectedValue в код, стоящий после вызова метода DataBind на RadComboBox. Надеюсь, поможет.

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e) 
{ 
    if (e.Item.IsInEditMode) 
    { 
     GridEditableItem editItem = (GridEditableItem)e.Item; 
     RadComboBox combo = (RadComboBox)editItem.FindControl("updateComboBox"); 
     combo.DataBind(); 
     combo.SelectedValue = DataBinder.Eval(editItem.DataItem,"ID").ToString(); 
    } 
} 
+0

ты мой Спаситель;) Я использую выпадающий в режиме редактирования, так что я завелся с: защищаемого ничтожной RadGrid1_ItemDataBound (объект отправителя, GridItemEventArgs е) {если (e.Item.IsInEditMode) {GridEditableItem editItem = (GridEditableItem) e.Item; RadComboBox combo = (RadComboBox) editItem.FindControl ("updateComboBox"); combo.DataBind(); combo.SelectedValue = DataBinder.Eval (editItem.DataItem, «ID»). ToString(); }} Я не могу начать говорить вам, как я благодарен ... Вчера я провел весь день. Необычно, что это сработало до тех пор, пока ... Большое вам спасибо! – PaulBinCT2

+0

Я ранг noob здесь, поэтому я хотел удостовериться, что я отметил вас, чтобы вы знали, насколько я глубоко благодарен. Для меня удивительно, что так много людей, обладающих таким большим опытом, так щедро проводят свое время, чтобы помочь новичкам! Я довольно новичок в кодировании (даже не начинал до пятидесятых), но у меня есть глубокий фон в электронике, строительстве и фотографии. Пожалуйста, дайте мне знать, если я когда-нибудь смогу вернуть благосклонность! Еще раз спасибо, ты действительно сделал мой день !!! – PaulBinCT2

+0

@ PaulBinCT2 Не стоит беспокоиться. Рад слышать, что это сработало для вас. И спасибо за все добрые слова. Мы все каждый день учимся чему-то новому, потому что технологии никогда не перестают развиваться. Я также новичок в некоторых других областях, и у меня так много помощи от многих других здесь, в SO. Для меня лучший способ вернуть благосклонность - помочь тем, кто нуждается в помощи, чем я могу. Вы помогаете мне, я помогаю вам, все помогают всем. Это дух духа, не так ли :) – woodykiddy

Смежные вопросы