How do update the Data Set for AxDataSource control by joining a new datasource in button_click() from c#?

Add a method on the DataSet in the AOT i.e. an X++ method called “modifyQuery”

Void modifyQuery()
{
querybuilddatasource qbds = someTable_q.datasourceName(someTable_ds.name());
qbds = qbds.adddatasource(tablenum(someOtherTable));
qbds.joinMode(JoinMode::ExistJoin);
qbds.relations(true);
someTable_ds.executeQuery();
}

Which implements the logic to add an extra query data source.

Then you can call this X++ method from the Update button in the managed code behind like this

protected void Button_Click(object sender, EventArgs e)
    {
        try
        {
            //Calling X++ method on the datset
            this.AxDataSource1.GetDataSet().DataSetRun.AxaptaObjectAdapter.Call("modifyQuery");
        }
        catch (System.Exception e)
        {
            if(!AxControlExceptionHandler.TryHandleException(this, e))
                throw;
        }
    }

 

Thanks Arif & Jeppe for the sample.