I have this DevExpress ASPxGridView in version 17.2:
<dx:ASPxGridView ID="gridview" Width="100%" runat="server"
CssClass="searchResultsGrid" KeyFieldName="Id"
ClientInstanceName="gridview"
OnCellEditorInitialize="gridview_CellEditorInitialize">
<Columns>
<dx:GridViewCommandColumn ShowSelectCheckbox="true"></dx:GridViewCommandColumn>
<dx:GridViewDataColumn Visible="false" FieldName="Id">
</dx:GridViewDataColumn>
<dx:GridViewDataTextColumn Caption="Link">
<DataItemTemplate>
<asp:LinkButton ID="LinkButton2" Enabled="true" runat="server" CommandName="Datas" Text='<%# Eval("DataItem.Link")%>' Visible="true"></asp:LinkButton>
</DataItemTemplate>
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataTextColumn Caption="Alias">
<DataItemTemplate>
<asp:LinkButton ID="LinkButton2" Enabled="false" ForeColor="Black" runat="server" Text='<%# Eval("Alias") %>'
Visible="true"></asp:LinkButton>
</DataItemTemplate>
<EditFormSettings Visible="False" />
</dx:GridViewDataTextColumn>
<dx:GridViewDataComboBoxColumn Visible="false"
FieldName="TableName"
PropertiesComboBox-IncrementalFilteringMode="Contains"
Caption='TableName'>
<EditFormSettings VisibleIndex="1" Visible="True" ColumnSpan="2" />
</dx:GridViewDataComboBoxColumn>
<dx:GridViewDataComboBoxColumn Visible="false" Name="AgentCo"
FieldName="Agent"
PropertiesComboBox-IncrementalFilteringMode="Contains"
Caption=' '>
<EditFormSettings VisibleIndex="6" Visible="false" ColumnSpan="1"/>
</dx:GridViewDataComboBoxColumn>
<dx:GridViewDataTextColumn Visible="false" Caption="">
<EditFormSettings VisibleIndex="27" Visible="true" />
<EditItemTemplate>
<dx:ASPxButton ID="ASButtonID" ClientIDMode="Static" runat="server" RenderMode="Link"
data-add="ShowSetting" data-hide="HideSetting"
Text="Show Setting" OnClick="Settings_Click"
AutoPostBack="false"/>
</EditItemTemplate>
</dx:GridViewDataTextColumn>
</Columns>
<SettingsEditing EditFormColumnCount="4" />
</dx:ASPxGridView>
I populate the combobox in gridview_CellEditorInitialize
like this:
protected void gridview_CellEditorInitialize(object sender, ASPxGridViewEditorEventArgs e)
{
if (e.Column.FieldName == "Agent")
{
ASPxComboBox cmb = e.Editor as ASPxComboBox;
var data = getAgentList();
cmb.DataSource = data;
cmb.ValueField = "IdAgent";
cmb.ValueType = typeof(String);
cmb.TextField = "AgentName";
cmb.DataBindItems();
if (AgentCoObject!= null && AgentCoObject.AgentName!= "")
{
cmb.Value = AgentCoObject.AgentName;
}
else
{
cmb.SelectedIndex = 0;
}
cmb.Enabled = IsEditable();
}
}
I can access AgentCo
in RowUpdating
and RowInserting
event handlers, but I need to access its value in Settings_Click
.
I used the following in the Setting_Click
method:
ASPxComboBox cmbTaxAgentCo = gridview.FindEditFormTemplateControl("AgentCo") as ASPxComboBox;
or
GridViewEditFormTemplateContainer editForm = grid.FindRowTemplateControl(gridview.EditingRowVisibleIndex, null) as GridViewEditFormTemplateContainer;
ASPxComboBox cmbTaxAgentCo = editForm.FindControl("AgentCo") as ASPxComboBox;
but all of them return Null.
How should I do that, with changing the format of AgentCo
?