2012-12-07 30 views
0

我一直在努力尋找一個簡單的例子或指導我的問題。基本上,我有一個數據集。此表有三列,AspxComboBox in AspxGridView

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

我想這個數據表到AspxGridView綁定。但是,我想最後一列被綁定到一個AspxComboBox使得:

  • 如果權限= 1,則結合組合框與項目A
  • 如果權限= 2,然後用的項目的結合組合框和B
  • 如果權限= 3,然後綁定項目A,B和C的組合框

我該如何做到這一點?我發現很多樣本都談論AspxGridView處於編輯模式。這裏的重點是我實際上並沒有編輯網格。我想要做的就是在ComboBox更改上做一個回發來做一些操作。在網格顯示(非編輯)模式下

回答

1

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