最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

c# - Accessing combobox in DevExpress AspxGridview - Stack Overflow

programmeradmin6浏览0评论

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?

发布评论

评论列表(0)

  1. 暂无评论