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"];

つまり、結果を繰り返し割り当てる必要があります。カウントを確認できるように、それらをリストまたは文字列配列(ループ内)に読み込む方が安全な場合がありますが、基本的には各ラベルを個別に設定する必要があります。1つを何度も設定して動作することを期待できるかどうかは想像できません。


さて、プログラムで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 に答える