如何填写Gridview选择字段

时间:2013-06-07 11:59:33

标签: asp.net

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

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

任何人请帮帮我。

2 个答案:

答案 0 :(得分:2)

您必须在RowDatabound事件上找到下拉列表,并将数据源分配到那里的下拉列表。

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

答案 1 :(得分: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();
        }
    }