2014-12-30 3 views
0

У меня есть раскрывающийся список, который я хотел бы разместить в таблице. Я привык к ярлыкам и текстовым полям, но я не могу заставить синтаксис работать над этим. Этот код находится внутри Webmethod, и мой вывод должен быть только html. Спасибо.Размещение DataBound выпадающего списка в TableCell

[System.Web.Services.WebMethod] 
public static string gatherSurchargeData(string PriceListItemID, string ProdID, string ColorCode) 
{ 
DataTable GetProductSizes = new DataTable(); 

GetProductSizes = DataLayer.PricingToolDL.getProductSizes(ProdID, ColorCode); 

DataTable dt = new DataTable(); 

dt = DataLayer.PricingToolDL.getScharge(PriceListItemID); 

Table tblScharges = new Table(); 
tblScharges.ID = "tblScharges"; 

TableHeaderRow th = new TableHeaderRow(); 

TableHeaderCell thSizeScharge = new TableHeaderCell(); 

thSizeScharge.Text = "Size"; 

th.Cells.Add(thSizeScharge); 

tblScharges.Rows.Add(th); 

int i = 0; 

    while (i <= dt.Rows.Count - 1) 
    { 
     TableRow tr = new TableRow(); 
     tr.ID = "tableTr" + i; 
     TableCell tcSizeScharge = new TableCell(); 

     DropDownList ddl = new DropDownList(); 

     ddl.DataSource = GetProductSizes; 
     ddl.DataTextField = "FitSize"; 
     ddl.DataValueField = "FitSize"; 
     ddl.DataBind(); 

     //string dtMovexSKU = dt.Rows[i]["MovexSKU"].ToString(); 
     //DataRow[] GetProductSizesMovexSKU = GetProductSizes.Select("MovexSKU Like'" + dtMovexSKU + "'"); 

     //tcSizeScharge.ID = "tcSizeScharge" + i; 

     //tcSizeScharge.Text = GetProductSizesMovexSKU[0][1].ToString(); 

     tr.Cells.Add(tcSizeScharge); 

     tblScharges.Rows.Add(tr); 
     i++; 
    } 

string html = ""; 
using (StringWriter sw = new StringWriter()) 
{ 
    tblScharges.RenderControl(new HtmlTextWriter(sw)); 
    html = sw.ToString(); 
} 

return html; 
} 

Прокомментированные строки будут кодом, который я бы использовал, если бы мне только хотелось, чтобы текст появился, если это помогает.

ответ

1

Вам нужно добавить контроль в TableCell как этот

tcSizeScharge.Controls.Add(ddl); 
+0

Это было все, что потребовалось. Спасибо. Иногда я чувствую, что мне не хватает самых простых вещей. – joerdie