无法按功能在网格视图中的编辑模式下填充下拉列表

时间:2014-05-29 07:15:12

标签: c# asp.net gridview drop-down-menu viewstate

我试图通过调用函数来填充DDL,但它不会通过If条件去这里的函数,已经检查了一切但它不会去函数 这是我的网格视图代码:

    <asp:GridView ID="smOrderShipmentList" runat="server" 
                    AutoGenerateColumns="False" Width="100%" BackColor="LightGoldenrodYellow" 
                    BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" 
                    GridLines="None" AllowPaging="false" 
                    OnRowDataBound="smOrderShipmentList_RowDataBound" 
        DataKeyNames="OrderShippingID" OnRowEditing="smOrderShipment_RowEditing" 
        onrowupdating="smOrderShipmentList_RowUpdating" 
        onrowcancelingedit="smOrderShipmentList_RowCancelingEdit">
                <Columns>

                    <asp:TemplateField HeaderText="Order Shipping ID" ItemStyle-Width="10%">
                        <ItemTemplate>

                          <a   href="javascript:collapseExpand('orderShippingID2-<%# Eval("OrderShippingID") %>');"> <asp:Label id="lblOrderShippingID" runat="server" Text='<%# Eval("OrderShippingID")%>' /></a>

                        </ItemTemplate>
                    </asp:TemplateField>
                   <%-- <asp:BoundField DataField="ShippingVia" HeaderText="Shipping Via" ItemStyle-Width="12%"/>--%>
                    <asp:TemplateField HeaderText="Shipping Via" ItemStyle-Width="12%" >
                    <ItemTemplate>
                    <%--  <asp:DropDownList ID="lblShippingvia" runat="server" ><asp:ListItem>default</asp:ListItem>
                      </asp:DropDownList>--%>
                    <asp:Label ID="lblShippingvia" runat="server" Text='<%# Eval("ShippingVia") %>' />
                    </ItemTemplate>
                    <EditItemTemplate>
                    <asp:DropDownList ID="ddlShippingvia" runat="server" EnableViewState="false"   />
                    </EditItemTemplate>
                    </asp:TemplateField>

...

我尝试了两种方法直接使用并使用gridview数据包但两者都得到了同样的错误:

    protected void smOrderShipmentList_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            int orderShippingID = Convert.ToInt32(DataBinder.Eval(e.Row.DataItem, "OrderShippingID"));

            GridView gvChild = (GridView)e.Row.FindControl("gvOrderShippingDetail");
            var orderShippingDetailList = Shipping.GetOrderShippingDetailList("", orderShippingID, -1, true);
            gvChild.DataSource = orderShippingDetailList;
            gvChild.DataBind();
        }



        if ((e.Row.RowState & DataControlRowState.Edit) > 0)
        {
            DropDownList ddl = (DropDownList)e.Row.FindControl("ddlShippingvia");


            ddl.DataSource = bindshippmethods(((Label)e.Row.FindControl( "lblSellerID")).Text);

            ddl.DataBind();
            ddl.SelectedValue = ((Label)e.Row.FindControl("lblShippingvia")).Text;


   }  
    protected ArrayList bindshippmethods(string sellerid)
    {

        ArrayList shmp = new ArrayList();
        foreach (var item in  Shipping.GetAllShippingMethodBySellerId(sellerid))
                {
                    shmp.Add(item.ShippingMethodName.ToString());

                    }

        return shmp;
    }



}`  

0 个答案:

没有答案