簡體   English   中英

AspxGridView中的AspxComboBox

[英]AspxComboBox in AspxGridView

我一直在努力尋找解決問題的簡單示例或指南。 基本上,我有一個數據集。 該表有三列,

  • 文件名稱(字串)
  • 文檔所有者(字符串)
  • 權限(int)

我想將此數據表綁定到AspxGridView。 但是,我希望將最后一列綁定到AspxComboBox,以便:

  • 如果Permission = 1,則將ComboBox與項A綁定
  • 如果Permission = 2,則將ComboBox與項目A和B綁定
  • 如果Permission = 3,則將ComboBox與項目A,B和C綁定

我該如何實現? 我發現的許多示例都談到了AspxGridView處於編輯模式。 這里的要點是我實際上並沒有在編輯網格。 我要做的就是在ComboBox更改上執行回發操作。

只需通過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;
    }

網格顯示(非編輯)模式下的可編輯組合框:

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

ASPxEdit.AutoPostBack
GridViewDataColumn.DataItemTemplate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM