如何在运行时用行字符串替换行id?

时间:2014-01-31 09:56:48

标签: c# asp.net

设计代码

<tr id="DEPB" runat="server"></tr>

<tr id="DEPB" runat="server"></tr>

<tr id="DEPB" runat="server"></tr>

代码背后

 string Test = ddlExim.SelectedItem.Text.Substring(3);
        txtEximDesc.Text = ddlExim.SelectedItem.Text.Substring(3);
        string[] Demo = ddlExim.SelectedValue.Split(',');
        try
        {
            DBK.Style.Add("display", "none");
            DEPB.Style.Add("display", "none");
            EPCG.Style.Add("display", "none");
            NFEI.Style.Add("display", "none");
            for (int i = 0; i < 3; i++)
            {
                if (Demo[i] == "DEPB")
                {
                    Demo[i].Style.Add("display", "table-row");
                }
                else if (Demo[i] == "EPCG")
                {
                    EPCG.Style.Add("display", "table-row");
                }
                else if (Demo[i] == "DBK")
                {
                    DBK.Style.Add("display", "table-row");
                }
                else if (Demo[i] == ".")
                {
                    NFEI.Style.Add("display", "table-row");
                }
            }
        }
        catch (Exception ex)
        {
            string Message = ex.Message;
        }

我想用Demo[i]取代DEPB,EPCG,DBK,但是得到错误:“字符串不包含样式的定义”。

Demo[i].Style.Add("display", "table-row");

3 个答案:

答案 0 :(得分:0)

Demo是一个字符串数组,因此Demo[i]是一个字符串,字符串没有属性Style。与其他if的内容相比,这一行看起来像一个异常值:

Demo[i].Style.Add("display", "table-row");

我想它应该如下:

DEPB.Style.Add("display", "table-row");

答案 1 :(得分:0)

runat="server"标记到这些表格所在的表格元素(在我的示例中为“tbl”),然后尝试以下代码。

    for (int i = 0; i < Demo.Length; i++)
    {
        (tbl.FindControl(Demo[i]) as HtmlTableRow).Style.Add("display", "table-row");
    }

当然,您需要添加以下命名空间。

    using System.Web.UI.HtmlControls;

希望这有帮助。

答案 2 :(得分:-1)

尝试将演示[i]演绎为webcontrol