1

在我的应用程序中,我有一个网格。网格有一些字段,如绑定字段、模板字段、复选框。我的问题是我想用数据源中的一个绑定字段和一个下拉菜单填充网格。

<asp:GridView ID="grdSetupBillingDetails" OnRowDataBound="grdSetupBillingDetails_OnRowDataBound" AutoGenerateColumns="False" runat="server" Width="100%">                          
                            <Columns>
                                <asp:TemplateField HeaderText="Check AssetSubType" SortExpression="CheckAssetSubType">
                                    <ItemStyle HorizontalAlign="Center" Width="100px" />
                                    <ItemTemplate>
                                        <asp:CheckBox ID="chkAssetSubType" runat="server" Checked='<%# Eval("ActiveFlag")%>' />
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:BoundField DataField="Name" HeaderText="AssetSubType">
                                    <HeaderStyle HorizontalAlign="Center" Width="150px" /> 
                                    <ItemStyle HorizontalAlign="center" Width="150px" />
                                </asp:BoundField>
                                <asp:templatefield headertext="Bill Period">
                                    <itemtemplate>
                                    <asp:dropdownlist runat="server" id="cboBillPeriod"></asp:dropdownlist>
                                    </itemtemplate>
                                </asp:templatefield>
                                <asp:TemplateField HeaderText="Fees" HeaderStyle-HorizontalAlign="Center" SortExpression="Fees">
                                    <ItemTemplate>
                                    <asp:TextBox ID="txtFees" runat="server" Text='<%# Bind("Fees") %>' Style="width: 100px;
                                    text-align: left;" MaxLength="12"></asp:TextBox>
                                    </ItemTemplate>
                                </asp:TemplateField>                                                                         
                            </Columns>
                      </asp:GridView>

任何人请帮助我。

4

2 回答 2

2

You have to find the dropdownlist on RowDatabound event and assign the datasource to the dropdownlist there .

protected void grdSetupBillingDetails_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            DropDownList cboBillPeriod = (DropDownList)e.Row.FindControl("cboBillPeriod");
            if (null != cboBillPeriod)
            {
                //Your combobox bind Code

                //cboBillPeriod.DataSource = dt;
                //cboBillPeriod.DataBind();
            }
        }
于 2013-06-07T13:20:14.837 回答
0

正如 Abhishek 建议的那样,RowDataBound 事件会起作用。如果您希望将绑定直接绑定到下拉列表而不是网格,如果您在应用程序中使用数据源,则可以将下拉列表绑定到数据源(例如,ObjectDataSource、EntityDataSource)。然后每次渲染时都会绑定。

如果您不使用数据源,则可以在下拉菜单的 Initi 事件上填写数据。就像是:

网络表格:

<asp:dropdownlist runat="server" id="cboBillPeriod" OnInit="cboBillPeriod_Init" />

代码背后:

protected void cboBillPeriod_Init(object sender, EventArgs e)
    {
        DropDownList cboBillPeriod = (DropDownList)sender;
        if (null != cboBillPeriod)
        {
            //Your combobox bind Code

            //cboBillPeriod.DataSource = dt;
            //cboBillPeriod.DataBind();
        }
    }
于 2013-06-07T13:43:56.580 回答