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)
- 如果权限=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;
}