C# 将无线电控制添加到c表
我从数据库中获取记录列表并将其存储在DataTable中,然后将其转换为System.Web.UI.WebControl.Table 之后,将单选按钮控件System.Web.UI.HtmlControls.HtmlInputRadioButton添加到每个表行 但由于对象引用未设置为对象的实例,所以我得到了一个错误。在线tOutput.renderControl新建HtmlTextWritersw 代码:C# 将无线电控制添加到c表,c#,C#,我从数据库中获取记录列表并将其存储在DataTable中,然后将其转换为System.Web.UI.WebControl.Table 之后,将单选按钮控件System.Web.UI.HtmlControls.HtmlInputRadioButton添加到每个表行 但由于对象引用未设置为对象的实例,所以我得到了一个错误。在线tOutput.renderControl新建HtmlTextWritersw 代码: string sReturn = ""; Table tOutput; HtmlInpu
string sReturn = "";
Table tOutput;
HtmlInputRadioButton rdoProperty;
StringWriter sw = new StringWriter();
try
{
DataTable dtOutput = new DataTable();
dtOutput = IstaDAL.getPropertyList(sProjectID);
if (dtOutput.Rows.Count > 0)
{
tOutput = convertDataTable2HTMLTable(dtOutput, true, true, false);
foreach(TableRow trOutput in tOutput.Rows)
{
if (trOutput.TableSection == TableRowSection.TableBody)
{
rdoProperty = new HtmlInputRadioButton();
rdoProperty.Attributes["value"] = trOutput.Cells[1].Text;
rdoProperty.Attributes["name"] = "rdoProperty";
trOutput.Cells[0].Controls.Add(rdoProperty);
}
}
tOutput.RenderControl(new HtmlTextWriter(sw));
sReturn = sw.ToString();
}
}
编辑:
当我试图进入rdoProperty进行一些研究时,我发现他的一个属性get_renderNameAttribute导致了该异常
堆栈跟踪:
at System.Web.UI.HtmlControls.HtmlInputRadioButton.get_RenderedNameAttribute()
试试这个:
if(tOutput!=null)
{
using (var htmlWriter = new HtmlTextWriter(sw)) {
tOutput.RenderControl(htmlWriter);
}
}
sReturn=sw.ToString();
有没有人有更好的解决方案 而不是用这个
trOutput.Cells[0].Controls.Add(rdoProperty);
我现在想到了这个
trOutput.Cells[0].Text = "<input type='radio' name='some name'/>";
@格兰特妮:不,不是。实际上,它返回HtmlTable,正如我在trOutput.Cells[1]中看到的那样;对于每个不起作用的迭代。它将进入if循环,但存在相同的错误。检查stacktraceTry的问题编辑,在每次迭代中给出唯一的名称。rdoProperty.Attributes[name]=rdoProperty_u2;+计数器;我猜单选按钮控件的名称必须相同?