Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将无线电控制添加到c表_C# - Fatal编程技术网

C# 将无线电控制添加到c表

C# 将无线电控制添加到c表,c#,C#,我从数据库中获取记录列表并将其存储在DataTable中,然后将其转换为System.Web.UI.WebControl.Table 之后,将单选按钮控件System.Web.UI.HtmlControls.HtmlInputRadioButton添加到每个表行 但由于对象引用未设置为对象的实例,所以我得到了一个错误。在线tOutput.renderControl新建HtmlTextWritersw 代码: string sReturn = ""; Table tOutput; HtmlInpu

我从数据库中获取记录列表并将其存储在DataTable中,然后将其转换为System.Web.UI.WebControl.Table

之后,将单选按钮控件System.Web.UI.HtmlControls.HtmlInputRadioButton添加到每个表行

但由于对象引用未设置为对象的实例,所以我得到了一个错误。在线tOutput.renderControl新建HtmlTextWritersw

代码:

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;+计数器;我猜单选按钮控件的名称必须相同?