1

我的标签:这里提到了标签,后面是代码。

      <div id="valueIntroduction" class="labelarea" runat="server">   </div>
       <div  class="line"></div>
       <div id="valueBacklog notice" class="labelarea">   </div>
       <div  class="line"></div>
       <div id="valueReasonably complete" class="labelarea">   </div>
       <div  class="line"></div>
       <div id="valueStatement of purpose" class="labelarea">   </div>
       <div  class="line"></div>
       <div id="valueResume" class="labelarea"> </div>
       <div  class="line"></div>
       <div id="valueTranscripts" class="labelarea">  </div>
       <div  class="line"></div>
       <div id="valueGRE Official test scores" class="labelarea">   </div>
       <div  class="line"></div>
       <div id="valueTOEFL or IELTS Official test scores" class="labelarea">   </div>
       <div  class="line"></div>
       <div id="valueLetters of Recommendation3" class="labelarea">   </div>
       <div  class="line"></div>
       <div id="valueLetters of Recommendation2" class="labelarea">   </div>
       <div  class="line"></div>
       <div id="valueLetters of Recommendation1" class="labelarea"> </div>
       <div  class="line"></div>
       <div id="valueSignature" class="labelarea">  </div>
       <div  class="line"></div>
       <div id="valueSubject" class="labelarea">  </div>
       <div  class="line"></div>

此代码将最后一条记录分配给第一个标签。如何将正确的记录分配给正确的标签?

     if (Department.Items[0].Selected)
                {
                        firstPanel.Visible = true;
                        myLegend.InnerText = "Informatics";
                        NewComm.CommandText = "getTextHeaderINFO";

                        NewComm.CommandType = CommandType.StoredProcedure;
                        NewComm.Connection = NewConn;
                        NewComm.CommandTimeout = 3000;
                        SqlDataReader results = NewComm.ExecuteReader();

                        while (results.Read())
                        {
                             Response.Write(results["TEXT_CONTENT"].ToString());
                             valueIntroduction.InnerHtml = results["TEXT_CONTENT"].ToString();
                        }
                 }
4

2 回答 2

1

好吧,正如现在所写的那样,您在 while 循环的每次迭代中都设置了相同标签的 InnerHtml。

我认为你会做更多这样的事情:

label1.InnerHTML = results["text_content"];
results.read()
label2.InnerHtml = results["text_content"];

等等

简而言之,您需要迭代地分配结果。将它们读入列表或字符串数​​组(在循环中)可能更安全,这样您就可以验证计数,但基本上您必须单独设置每个标签。我无法想象您如何期望它一遍又一遍地设置一个。


现在,当您打算以编程方式使用 HTML 元素时,您应该做的与我在这里看到的非常不同。

您在这里所做的事情需要您按 ID 查找 HTML 元素,分配给它们的 InnerHtml,而且确实很容易出错。它也不能很好地使用 C# 或 .NET 环境。

请改用 .NET 标签。像这样定义它们:

<asp:Label runat="server" id="valueIntroduction" CssClass="labelarea" />

然后在后面的代码上,您可以更轻松地访问它们:

valueIntroduction.Text = "This text will show up in the valueIntroduction label";
于 2013-03-12T18:35:22.743 回答
0

为什么要循环调用 results.Read() ?您应该只在结果中找到一个结果行并将这一行放入 valueIntroduction.InnerHtml 属性。

于 2013-03-12T18:33:31.183 回答