【问题标题】:AspxComboBox in AspxGridViewAspxGridView 中的 AspxComboBox
【发布时间】:2012-12-07 07:39:48
【问题描述】:

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

  • 文档名称(字符串)
  • 文档所有者(字符串)
  • 权限(整数)

我想将此 DataTable 绑定到 AspxGridView。但是,我希望最后一列绑定到 AspxComboBox 以便:

  • 如果 Permission = 1 则将 ComboBox 与项目 A 绑定
  • 如果 Permission = 2 则将 ComboBox 与项目 A 和 B 绑定
  • 如果 Permission = 3,则将 ComboBox 与项目 A、B 和 C 绑定

我怎样才能做到这一点?我发现的许多示例都在谈论 AspxGridView 处于编辑模式。这里的重点是我实际上并没有编辑网格。我想做的就是对 ComboBox 更改进行回发以执行一些操作。

【问题讨论】:

    标签: c# asp.net devexpress aspxgridview aspxcombobox


    【解决方案1】:

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

    <dx:GridViewDataColumn>
        <DataItemTemplate>
            <dx:ASPxComboBox runat="server" AutoPostBack="True" ...></dx:ASPxComboBox>
        </DataItemTemplate>
    </dx:GridViewDataColumn>
    

    ASPxEdit.AutoPostBack
    GridViewDataColumn.DataItemTemplate

    【讨论】:

      【解决方案2】:

      只需通过 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>
      

      C#

      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;
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多