Hi
I'm implementing dropdown list defaulting based on selection while editing/adding a row on a webdatagrid. I have the events firing for selected index changed and data bound, but can't seem to set the selected index, i've tried
ddlUnitID.EditorControl.Items[2].Selected = true; ddlUnitID.EditorControl.SelectedValue = ddlUnitID.EditorControl.Items[2].Value; ddlUnitID.EditorControl.SelectedItemIndex = 2;
all seem to not select the item in the dropdopdown on the editing row. I've tried this both on selection changed and ondatabound.
<ig:WebDataGrid ID="WebDataGrid1" runat="server" AutoGenerateColumns="False" OnRowUpdating="WebDataGrid1_RowUpdating" AutoGenerateBands="true" ViewStateMode="Disabled" DataKeyFields="ID" Width="98%" OnRowAdded="WebDataGrid1_RowAdded" OnRowAdding="WebDataGrid1_RowAdding" OnRowsDeleting="WebDataGrid1_RowDeleting" > <Columns> <ig:BoundDataField Hidden="true" DataFieldName="ID" Key="ID" > <Header Text="ID" /> </ig:BoundDataField> <ig:BoundDataField DataFieldName="Ordinal" Key="Ordinal"> <Header Text="Process No." /> </ig:BoundDataField> <ig:BoundDataField DataFieldName="MaterialID" Key="Material"> <Header Text="Material" /> </ig:BoundDataField> <ig:BoundDataField DataFieldName="QTY" Key="GROSS"> <Header Text="Quantity" /> </ig:BoundDataField> <ig:BoundDataField DataFieldName="UnitQTYID" Key="UOM"> <Header Text="Unit" /> </ig:BoundDataField> <ig:BoundDataField DataFieldName="UnitQTY" Key="COUNT"> <Header Text="Weight" /> </ig:BoundDataField> <ig:BoundDataField DataFieldName="UnitID" Key="WUOM"> <Header Text="Weight Unit" /> </ig:BoundDataField> <ig:BoundDataField DataFieldName="Comments" Key="NET"> <Header Text="Comments" /> </ig:BoundDataField> <ig:TemplateDataField Key="DeleteItem" Width="60px"> <Header Text="Delete" /> <ItemTemplate> <asp:LinkButton runat="server" ID="DeleteItem" Text="X" OnClientClick="DeleteRow(); return false;" /> </ItemTemplate> </ig:TemplateDataField> </Columns> <EditorProviders> <ig:DropDownProvider ID="ddlMaterialID"> <EditorControl ID="ddlMatID" runat="server" DisplayMode="DropDown" TextField="NAME" OnSelectionChanged="ddlMatID_SelectionChanged" ValueField="ID" DataSourceID="srcMaterial" AutoPostBackFlags-SelectionChanged="Async"> </EditorControl> </ig:DropDownProvider> <ig:DropDownProvider ID="ddlUnitID"> <EditorControl ID="ddlUnID" runat="server" DisplayMode="DropDown" TextField="UNIT_NAME" ValueField="ID" DataSourceID="srcUnit" OnDataBound="ddlUnitID_DataBound"> </EditorControl> </ig:DropDownProvider> <ig:DropDownProvider ID="ddlWUnitID" > <EditorControl ID="ddlWUnID" runat="server" DisplayMode="DropDown" TextField="UNIT_NAME" ValueField="ID" DataSourceID="srcWUnit"> </EditorControl> </ig:DropDownProvider> <ig:NumericEditorProvider ID="txtUOM"> </ig:NumericEditorProvider> <ig:NumericEditorProvider ID="txtQuantity"> </ig:NumericEditorProvider> </EditorProviders> <Behaviors> <ig:Activation /> <ig:Selection RowSelectType="Multiple" CellClickAction="Row" /> <ig:Sorting SortingMode="Single" Enabled="true" /> <ig:ColumnMoving> </ig:ColumnMoving> <ig:ColumnResizing> </ig:ColumnResizing> <ig:EditingCore> <Behaviors> <ig:CellEditing Enabled="true"> <EditModeActions EnableF2="true" EnableOnActive="true" MouseClick="Single" /> <ColumnSettings> <ig:EditingColumnSetting ColumnKey="ID" ReadOnly="true" /> <ig:EditingColumnSetting ColumnKey="Material" EditorID="ddlMaterialID" /> <ig:EditingColumnSetting ColumnKey="COUNT" EditorID="txtQuantity" /> <ig:EditingColumnSetting ColumnKey="UOM" EditorID="ddlUnitID" /> <ig:EditingColumnSetting ColumnKey="WUOM" EditorID="ddlWUnitID" /> </ColumnSettings> </ig:CellEditing> <ig:RowAdding Alignment="Bottom" EditModeActions-EnableOnActive="true" EditModeActions-MouseClick="Single" Enabled="true" > <AddNewRowClientEvents ExitedEditMode="WebDataGridView_ExitedEditMode" /> <ColumnSettings> <ig:RowAddingColumnSetting ColumnKey="ID" ReadOnly="true" /> <ig:RowAddingColumnSetting ColumnKey="Material" EditorID="ddlMaterialID" /> <ig:RowAddingColumnSetting ColumnKey="COUNT" EditorID="txtQuantity" /> <ig:RowAddingColumnSetting ColumnKey="UOM" EditorID="ddlUnitID" /> <ig:RowAddingColumnSetting ColumnKey="WUOM" EditorID="ddlWUnitID" /> </ColumnSettings> </ig:RowAdding> <ig:RowDeleting Enabled="true" /> </Behaviors> </ig:EditingCore> </Behaviors> <ClientEvents AJAXResponse="WebDataGridView_AJAXResponse" /> </ig:WebDataGrid>
Using 2013.2 ASP.net and C#.Thanks
Ten
Thanks again for your help, sorry if i seem a little curt, I think we've been having a breakdown in communication. Your help is appreciated. Is there documentation for the javascipt api? The online documentation seems rather...minimalist.
function WebDataGrid1_CellEditing_ExitedEditMode(sender, eventArgs) { if (eventArgs.getCell().get_column().get_key() != 'Material') { return; }//did we just change the material, would rather this was on selected index changed but edit mode exit is ok for now //fetch the selected material id obj = { MaterialID: eventArgs.getCell().get_row().get_cellByColumnKey('Material').get_value() } //call the webservice fetch the unitid value POST("WebService.asmx/GetEngineMaterialUnit", JSON.stringify(obj), function (JSONCallback) { if (typeof JSONCallback === 'undefined' || JSONCallback === null) { alert('An error occured while fecthing the material unit.'); } else { if (JSONCallback.ID > 0 ) {//returns the unit value // set desired value based on the other dropdown var editor = eventArgs.getCell().get_row().get_cellByColumnKey('WUOM'); //get the unit dropdowneditor this seems to only get the header cell editor.selectItem(editor.get_items().get_item(JSONCallback.Units.ID), true, true); //this needs to be select buy value or text if possible //otherwise select by index would work i just need to get the dropdown editor and iterate through it to get the index then select it } } }); }
TypeError: editor.get_items is not a function EngineCompManage.aspx:645
Hello,
Please provide a code sample of your scenario.
Thank you in advance.
i can't use eventargs because it's on the selected index changed of a different dropdown not on line edit. the event args is the current dropdown 'Material', i need to update the drop down 'WUOM'. I need to get the WUOM dropdown by reference and set it. there must be a selector other then eventarg to get a editor?
To get the editor use eventArgs.getEditor() method. Please review my reply (line 21) again and the attached sample to it.