我想在gridview中调用我的组合框来运行btnShow_Click
,但是当我在C#中键入组合框ID时,名字对象在当前上下文中不存在。
有关信息,我的gridview有3个数据源 和我的组合框我想设置3个数据源(1个gridview有3个条件数据源并且有3个条件组合框数据源)
protected void btnShow_Click(object sender, EventArgs e)
{
string ddl = ddlApp.Value.ToString();
if (ddl == "ATTD")
{
GvMenu.DataSourceID = "SqlDataSourceAttd";
GvMenu.DataBind();
}
else if (ddl == "TRVL")
{
GvMenu.DataSourceID = "SqlDataSourceTrvl";
GvMenu.DataBind();
}
else if (ddl == "CORE")
{
GvMenu.DataSourceID = "SqlDataSourceCore";
GvMenu.DataBind();
}
}
在aspx gridview
中[![我的网格视图的代码] [1]] [1]
<dx:GridviewDataComboboxcolumn FieldName="ParentMenuID" visibleindex="2" Caption="Parent Menu ID" showincustomizationform="true" >
<PropertiesComboBox ValueField="ParentMenuID" TextField="ParentMenuID" ValueType="System.String" >
</PropertiesComboBox>
</dx:GridviewDataComboboxcolumn>
答案 0 :(得分:0)
您应该使用ASPxGridView.FindRowCellTemplateControl方法来查找驻留在列的DataItemTemplate容器中的控件。另请参阅Accessing Controls Contained within Templates主题。
自定义控件的最佳位置是Init和Load事件以及这些 事件应该用于控件初始化:Init和Load The general technique of using the Init/Load event handler
参考这些:
Find controls in the DataItem template of ASPxGridView column
How to Find DataItemTemplate control inside OnCustomButtonCallback event using c# in server side
ASPxGridView - How to find a control inside the DataItem template
用于在运行时更改网格的数据源:
ASPxGridView - How to change datasources for the grid
ASPxGridView - How to change Datasource at runtime
ASPxGridView - How to change a datasource dynamically
How to dynamically switch the grid's data source and recreate columns at runtime
请检查代码中心的How to dynamically switch the grid's data source and recreate columns at runtime示例, 它演示了如何在运行时切换数据源。我建议 您将查看此示例中提到的其他示例。
答案 1 :(得分:0)
我注意到您在单元格模板中仅使用ASPxComboBox和ASPxLabel组件。您可以使用GridViewDataComboBoxColumn获得相同的结果。
<dx:GridViewDataComboBoxColumn FieldName="ParentMenuID">
<PropertiesComboBox ValueType="System.String" />
</dx:GridViewDataComboBoxColumn>
if (ddl == "ATTD")
{
var parentMenuColumn = (GridViewDataComboBoxColumn)GvMenu.Columns["ParentMenuID"];
parentMenuColumn.PropertiesComboBox.DataSourceID = "Your Data Source ID";
GvMenu.DataSourceID = "SqlDataSourceAttd";
GvMenu.DataBind();
}