【发布时间】:2011-11-23 00:58:45
【问题描述】:
所以我有一个动态构建的表,它为数据库中的每台机器添加行。每行包含 4 列,其中 2 列添加到表中,它们包含一个 RadComboBox,使用户能够选择来自数据库的某些值。
为表格构建每一行的方法
private void AddNewRow1(Machine Machine)
{
//start a new row
TableCell site = new TableCell();
TableCell name = new TableCell();
TableCell type = new TableCell();
TableCell model = new TableCell();
TableRow tr = new TableRow();
Literal breakline = new Literal();
breakline.Text = "<br />";
Literal breakline1 = new Literal();
breakline1.Text = "<br />";
//site name column
site.RowSpan = 2;
site.Controls.Add(AddSiteField(Machine));
tr.Controls.Add(site);
//machine name
name.RowSpan = 2;
name.Controls.Add(AddMachineField(Machine));
tr.Controls.Add(name);
//machine type name
type.RowSpan = 2;
type.Controls.Add(AddMachineTypeField(Machine));
type.Controls.Add(breakline);
type.Controls.Add(AddTypeComboBox());
tr.Controls.Add(type);
//machine model name
model.RowSpan = 2;
model.Controls.Add(AddMachineModelField(Machine));
model.Controls.Add(breakline1);
model.Controls.Add(AddModelComboBox());
tr.Controls.Add(model);
AssignPlaceHolder.Controls.Add(tr);
}
模型和类型控件AddModelComboBox()或AddTypeComboBox()中的方法如下:
private RadComboBox AddModelComboBox()
{
RadComboBox MachineModelCombo = new RadComboBox();
machineModel = inputsService.GetMachineModelList(SiteID);
foreach (MachineModel MachineModel in machineModel)
{
if (MachineModel.Name != "NULL")
{
MachineModelCombo.Items.Add(new RadComboBoxItem(MachineModel.Name, MachineModel.ID));
}
}
MachineModelCombo.EnableLoadOnDemand = true;
MachineModelCombo.EmptyMessage = "Select a Machine Model";
return MachineModelCombo;
}
该表工作正常,并且构建正确。 我在下面的代码中遇到的问题与获取这些动态构建组合框的值有关:
protected void Update_Click(object sender, EventArgs e)
{
string MachineTypeID;
string MachineModelID;
machine = inputsService.GetMachineSiteDetails(SiteID);
foreach (Machine Machine in machine)
{
try
{
RadComboBox machineTypeComboBox = new RadComboBox();
RadComboBox machineModelComboBox = new RadComboBox();
MachineTypeID = machineTypeComboBox.SelectedValue;
MachineModelID = machineModelComboBox.SelectedValue;
inputsService.UpdateMachineModels(Machine.ID, MachineTypeID);
inputsService.UpdateMachineTypes(Machine.ID, MachineModelID);
}
catch (Exception ex)
{
{
logger.ErrorFormat(
"Update_Click exception occurred when attempting to update the database {0}", ex);
}
}
}
我的问题是,如何从动态构建的 radcombobox 中获取选定的值?
注意:
inputsService.UpdateMachineModels(Machine.ID, MachineTypeID);
inputsService.UpdateMachineTypes(Machine.ID, MachineModelID);
这两行是对 DB api 的 web 服务调用,用于根据网页中选择的项目更新数据库。任何以 inputsService 开头的调用也是如此。*
非常感谢任何帮助或建议。
谢谢
【问题讨论】:
-
您是否在循环浏览您在更新事件中创建的表行?
-
它循环遍历在机器对象中找到的每台机器,机器对象是从对数据库的调用中获得的。
标签: c# asp.net web-services