因此,我有一個動態構建的表格,該表格由一個方法創建並加載到面板中,該面板的作用類似於佔位符,當它加載到頁面時,它工作正常,當我上傳頁面。桌子出現並加載我想要的。我唯一的問題是,我有兩個dropbox有用戶選擇更新表的列的選項。問題是,當我去並點擊我的更新按鈕時,它會搜索頁面以獲取正確值的相應控件(即Dropbox中的值),以更新下面將解釋的表。爲什麼我的控件在試圖從asp控件中拉出時沒有出現在面板中
這就是我跟我的更新按鈕,這樣做的:
protected void Update_Click(object sender, EventArgs e)
{
UpdateFail.Visible = false;
UpdateSucceed.Visible = false;
string MachineTypeID;
string MachineModelID;
string machinetypeid;
string machinemodelid;
int i = 0;
machine = inputsService.GetMachineSiteDetails(SiteID);
foreach (Machine Machine in machine)
{
try
{
machinetypeid = Machine.ID.ToString() + "type";
machinemodelid = Machine.ID.ToString() + "model";
Control type = MyExtensions.FindControlRecursive(this, machinetypeid);
Control model = MyExtensions.FindControlRecursive(this, machinemodelid);
RadComboBox machinetype = (RadComboBox) type;
RadComboBox machinemodel = (RadComboBox) model;
MachineTypeID = machinetype.SelectedValue;
MachineModelID = machinemodel.SelectedValue;
if (MachineTypeID != "")
{
inputsService.UpdateMachineModels(Machine.ID, MachineModelID);
i++;
}
if (MachineModelID != "")
{
inputsService.UpdateMachineTypes(Machine.ID, MachineTypeID);
i++;
}
}
catch (Exception ex)
{
{
logger.ErrorFormat(
"Update_Click exception occurred when attempting to update the database {0}", ex);
}
}
}
if (i != 0)
{
UpdateFail.Visible = false;
UpdateSucceed.Visible = true;
}
else
{
UpdateSucceed.Visible = false;
UpdateFail.Visible = true;
}
//clear out the old table and replace with the newly revized table.
AddTable();
}
現在我的問題有代碼的下面兩行
Control type = MyExtensions.FindControlRecursive(this, machinetypeid);
Control model = MyExtensions.FindControlRecursive(this, machinemodelid);
的方法MyExtensions.FindControlRecursive做的()是這樣的:
public static Control FindControlRecursive(Control root, string id)
{
System.Web.UI.Control controlFound;
if (root != null)
{
controlFound = root.FindControl(id);
if (controlFound != null)
return controlFound;
foreach (Control c in root.Controls)
{
controlFound = FindControlRecursive(c, id);
if (controlFound != null)
return controlFound;
}
}
return null;
}
UPDATE1 它在做什麼是當它到達findcontrol方法時,它無法在pannel中找到表,因此它返回null並且無法更新表。
我想知道的是,我在這裏做錯了什麼,我該如何解決這個問題?
任何幫助或建議,非常感謝。
謝謝
你沒有真正解釋它在做什麼/沒有做什麼。 –