C# AspxGridView中的AspxComboBox

C# AspxGridView中的AspxComboBox,c#,asp.net,devexpress,aspxgridview,aspxcombobox,C#,Asp.net,Devexpress,Aspxgridview,Aspxcombobox,我一直在努力寻找一个简单的例子或指导我的问题。基本上,我有一个数据集。这个表有三列 文档名称(字符串) 文档所有者(字符串) 权限(int) 我想将此数据表绑定到AspxGridView。但是,我希望将最后一列绑定到AspxComboBox,以便: 如果权限=1,则将组合框与项目A绑定 如果权限=2,则将ComboBox与项目A和B绑定 如果权限=3,则将组合框与项目A、B和C绑定 我怎样才能做到这一点?我发现的很多示例都谈到了AspxGridView处于编辑模式。这里的要点是,我实际上

我一直在努力寻找一个简单的例子或指导我的问题。基本上,我有一个数据集。这个表有三列

  • 文档名称(字符串)
  • 文档所有者(字符串)
  • 权限(int)
我想将此数据表绑定到AspxGridView。但是,我希望将最后一列绑定到AspxComboBox,以便:

  • 如果权限=1,则将组合框与项目A绑定
  • 如果权限=2,则将ComboBox与项目A和B绑定
  • 如果权限=3,则将组合框与项目A、B和C绑定

我怎样才能做到这一点?我发现的很多示例都谈到了AspxGridView处于编辑模式。这里的要点是,我实际上并没有编辑网格。我只想对组合框更改进行回发,以执行一些操作。

网格显示(非编辑)模式下的可编辑组合框:




只需通过dropdownList的SelectedValue属性绑定即可。检查以下样本

Aspx
<asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="False" 
    onrowdatabound="gvTest_RowDataBound">
<Columns>
    <asp:TemplateField HeaderText="Serial No."><ItemTemplate><%# Container.DataItemIndex+1 %></ItemTemplate></asp:TemplateField>
    <asp:TemplateField HeaderText="Fruits" ><ItemTemplate><asp:DropDownList runat="server" ID="ddlFruits" SelectedValue='<%# Bind("FruitID") %>'   >
        <asp:ListItem Value="1">Apples</asp:ListItem>
        <asp:ListItem Value="2">Pineapples</asp:ListItem>
        <asp:ListItem Value="3">Banana</asp:ListItem>
        </asp:DropDownList></ItemTemplate> </asp:TemplateField>
</Columns>
</asp:GridView>
Aspx
苹果
菠萝
香蕉
C#

受保护的无效页面加载(对象发送方,事件参数e)
{   
gvTest.DataSource=GetData();
gvTest.DataBind();
}
私有数据表GetData()
{
DataTable dt=新的DataTable();
添加(新的数据列(“FROUTID”);
对于(int i=0;i<3;i++)
{
DataRow dr=dt.NewRow();
dr[“果状体”]=i+1;
dt.Rows.Add(dr);
}
返回dt;
}
Aspx
<asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="False" 
    onrowdatabound="gvTest_RowDataBound">
<Columns>
    <asp:TemplateField HeaderText="Serial No."><ItemTemplate><%# Container.DataItemIndex+1 %></ItemTemplate></asp:TemplateField>
    <asp:TemplateField HeaderText="Fruits" ><ItemTemplate><asp:DropDownList runat="server" ID="ddlFruits" SelectedValue='<%# Bind("FruitID") %>'   >
        <asp:ListItem Value="1">Apples</asp:ListItem>
        <asp:ListItem Value="2">Pineapples</asp:ListItem>
        <asp:ListItem Value="3">Banana</asp:ListItem>
        </asp:DropDownList></ItemTemplate> </asp:TemplateField>
</Columns>
</asp:GridView>
protected void Page_Load(object sender, EventArgs e)
    {   
        gvTest.DataSource = GetData();
        gvTest.DataBind();
    }

    private DataTable GetData()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("FruitID"));
        for (int i = 0; i < 3; i++)
        {
            DataRow dr=dt.NewRow();
            dr["FruitID"] = i + 1;
            dt.Rows.Add(dr);
        }
        return dt;
    }