Возникли проблемы с заполнением раскрывающегося списка в режиме редактирования в виде сетки по функциям
Я пытаюсь заполнить 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;
}
}`