使用字符串作为div ID,将innerHTML值设置为后面的代码中的div元素

时间:2017-11-18 12:08:36

标签: c# html asp.net

我在.aspx页面中使用以下代码。

<form runat="server">
  <div style="background:#ffffff;height:1150px;width:100%">
    <center>
      <table class="calendar-table" cellpadding="0" cellspacing="2" border="1">
        <tr>
          <td>
            <div class="cell">
              <div class="cell-day">
                <asp:Label ID="label_day_11" runat="server" Text=""></asp:Label>
              </div>
              <div id="event_11" runat="server">

              </div>
            </div>
          </td>
        </tr>
        <table>
    </center>
  </div>
</form>

在我的原始代码中,我将总共有6行和7列,标签行和列将以矩阵的形式从1167。在这里,我想使用C#从代码后面设置label_day_11的值,为此我使用下面的代码,

int i = 1; // 1 till 6 rows
int j = 1; // 1 till 7 columns
string dayId = "label_day_" + i.ToString() + j.ToString();
Label day = FindControl(dayId) as Label;
day.Text = "Monday";

上面的代码工作正常。但是现在我想为innerHTML div元素分配一个event_11值。但我不知道如何获取该ID以及如何设置innerHTML。有没有办法在C#中使用字符串访问div控件,然后为其设置innerHTML值?如果是asp:Label,我将控制值用作Label但不确定如何控制普通的html div元素。

我尝试了以下代码,但它对我不起作用。

string eventId = "event_" + i.ToString() + j.ToString();
Control div = FindControl(eventId);
StringWriter sw = new StringWriter();
HtmlTextWriter w = new HtmlTextWriter(sw);
div.RenderControl(w);

我不知道如何继续使用它。任何解决方案?

1 个答案:

答案 0 :(得分:2)

我认为如果你将其投放到HtmlGenericControl,它应该会有用。

HtmlGenericControl div = FindControl(eventId) as HtmlGenericControl;
div.InnerHtml = "your inner html";

https://msdn.microsoft.com/en-us/library/system.web.ui.htmlcontrols.htmlgenericcontrol(v=vs.110).aspx