2013-03-08 79 views
2

我很努力在插入/更新我的網格時在我的RadGrid中添加組合框。所以當我的網格進入editmode時,我想要顯示一個ComboBox。組合框RadGrid內

這是我的aspx頁面:

<telerik:radgrid id="radManageMembers" runat="server" cssclass="GridView" width="96%" 
    autogeneratecolumns="true" onUpdateCommand="radManageMembers_UpdateCommand" Skin="WebBlue" 
    onNeedDataSource="radManageMembers_NeedDataSource" OnDeleteCommand="radManageMembers_DeleteCommand" 
    OnInsertCommand="radManageMembers_InsertCommand" OnItemCreated="radManageMembers_ItemCreated" OnItemCommand="radManageMembers_ItemCommand"> 
    <MasterTableView EditMode="InPlace" AutoGenerateColumns="false" 
     TableLayout="Fixed" DataKeyNames="MemberID" CommandItemDisplay="TopAndBottom" Skin="WebBlue"> 
     <Columns> 

      <telerik:GridBoundColumn DataField="MemberID" Display="false"> 
      </telerik:GridBoundColumn> 

      <telerik:GridButtonColumn UniqueName="DeleteColumn" CommandName="Delete" ButtonType="PushButton" Text="Delete"> 
      </telerik:GridButtonColumn> 

      <telerik:GridBoundColumn DataField="MemberName" UniqueName="MemberName" HeaderText="MemberName"> 
      </telerik:GridBoundColumn> 
      <telerik:GridBoundColumn DataField="FirstName" UniqueName="FirstName" HeaderText="FirstName"> 
      </telerik:GridBoundColumn> 
      <telerik:GridBoundColumn DataField="LastName" UniqueName="LastName" HeaderText="LastName" > 
      </telerik:GridBoundColumn>     
      <telerik:GridBoundColumn DataField="Title" UniqueName="Title" HeaderText="Title"> 
      </telerik:GridBoundColumn> 
      <telerik:GridBoundColumn DataField="AdditionalNumber" UniqueName="AdditionalNumber" HeaderText="AdditionalNumber"> 
      </telerik:GridBoundColumn> 
      <telerik:GridBoundColumn DataField="Telephone" UniqueName="Telephone" HeaderText="Telephone"> 
      </telerik:GridBoundColumn> 
      <telerik:GridBoundColumn DataField="IDNumber" UniqueName="IDNumber" HeaderText="IDNumber"> 
      </telerik:GridBoundColumn> 
      <telerik:GridBoundColumn DataField="BusinessName" UniqueName="BusinessName" HeaderText="BusinessName"> 
      </telerik:GridBoundColumn> 
      <telerik:GridBoundColumn DataField="Email" UniqueName="Email" HeaderText="Email"> 
      </telerik:GridBoundColumn> 
      <telerik:GridBoundColumn DataField="LanguageCode" UniqueName="LanguageCode" HeaderText="LanguageCode"> 
      </telerik:GridBoundColumn>  

      <telerik:GridEditCommandColumn ButtonType="PushButton" UniqueName="EditCommandColumn"> 
       <HeaderStyle Width="85px"></HeaderStyle> 
      </telerik:GridEditCommandColumn> 

     </Columns> 
      <EditFormSettings CaptionFormatString="Edit details for employee with ID {0}" CaptionDataField="EmployeeID"> 
      <FormTableItemStyle Width="100%" Height="29px"></FormTableItemStyle> 
      <FormTableStyle GridLines="None" CellSpacing="0" CellPadding="2"></FormTableStyle> 
      <FormStyle Width="100%"></FormStyle> 
      <EditColumn ButtonType="ImageButton"> 
      </EditColumn> 
     </EditFormSettings> 
    </MasterTableView> 
    <ClientSettings> 
     <ClientEvents OnRowDblClick="RowDblClick"></ClientEvents> 
    </ClientSettings> 

我知道你有使用ItemCreated事件,但我不能讓它準確工作。

這是我在ItemCreate,但是這個代碼不工作:

if (e.Item.OwnerTableView.IsItemInserted && e.Item is GridCommandItem) 
{ 
     GridCommandItem insertItem = (GridCommandItem)e.Item; 
     RadComboBox combo = (RadComboBox)insertItem.FindControl("Title"); 
} 

我有看這裏的例子 - http://demos.telerik.com/aspnet-ajax/grid/examples/dataediting/editmodes/defaultcs.aspx

但這種組合框不填充不同值來自數據庫,似乎有重複,我覺得在ComboBox中毫無意義。

我打開看看是否有其他方法來做到這一點或解決這個問題的正確方法。

編輯

組合框的值是從數據庫中,所有值都是唯一的。

+0

有你看了Telerik的網站上有這麼多的真棒例子。我很驚訝你沒有看過他們在他們的網站上發佈的Gridview中的ComboBox示例 – MethodMan 2013-03-08 08:35:55

+0

組合框在哪裏?代碼綁定組合框的位置在哪裏? – 2013-03-08 17:52:27

回答

0

在您的代碼中,您不添加Combobox。所以,請在EditItemTemplate裏添加組合框,並嘗試下面的代碼來訪問組合框

protected void grid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) 
    { 
     if (e.Item is GridEditableItem && e.Item.IsInEditMode) 
     { 
      GridEditableItem item = (GridEditableItem)e.Item; 
      RadComboBox combo = ((RadComboBox)item.FindControl("RadComboBoxValore")); 
      combo.DataSource = SqlDataSource2; 
      combo.DataValueField = "EmployeeID"; 
      combo.DataTextField = "EmployeeID"; 
      combo.DataBind(); 
     } 
    } 

或添加GridDropDownColumn