2017-04-01 2 views
0

詳細ビュー内のラベルコントロールのテキストを設定しようとしていますが、機能していません。しかし、 "オブジェクト参照がオブジェクトのインスタンスに設定されていません"というエラーが表示されます。 誰も私を教えてくれます.. .. ?? 私のフロントエンド・コードは次のとおりです。詳細ビューコントロール内のラベルコントロールにアクセス

<asp:Panel ID="sub_question_panel" runat="server"> 
    <asp:DetailsView ID="DetailsView1" runat="server" CellPadding="6" ForeColor="#333333" AutoGenerateRows="false" GridLines="None" > 
    <Fields> 
     <asp:TemplateField> 
     <ItemTemplate> 
       <table id="Question_view_table"> 
        <tr> 
<td style="font-family:Arial Rounded MT;"> 
<label id="Question_no"><span style="font-size:20px;">Question</span>:</label> 
<asp:Label ID="Ques_id_label" runat="server" Text="Label"></asp:Label></td> 
</tr> 
<tr> 
<td style="height:20px"></td> 
</tr> 
<tr> 
<td style="font-family:'Times New Roman'; font-size:18px; "> 
<label id="Question_detail"><%# Eval ("Question") %></label> 
</td> 
</tr> 
<tr> 
<td style="font-family:'Times New Roman'; font-size:18px;"> 
<ol style="list-style:upper-alpha"> 
<li> 
<label id="optn1"> &nbsp&nbsp<%# Eval ("Option1") %></label></li> 
<li> 
<label id="optn2"> &nbsp&nbsp<%# Eval ("Option2") %></label></li> 
<li> 
<label id="optn3"> &nbsp&nbsp<%# Eval ("Option3") %></label></li> 
<li> 
<label id="optn4"> &nbsp&nbsp<%# Eval ("Option4") %></label></li> 
</ol> 
</td> 
</tr> 
      </table> 
</ItemTemplate> 
</asp:TemplateField> 
</Fields> 
</asp:DetailsView> 
</asp:Panel> 

マイバックエンドのコードは次のとおりです。

protected void Page_Load(object sender, EventArgs e) 
{ 
     int question_id = 1; 
     Label Question_Id = DetailsView1.FindControl("Ques_id_label") as Label; 
     Question_Id .Text = Convert.ToString(question_id); 
} 

答えて

0

あなたは、DataListView

あなたがidで、あなたのラベルを見つけたい、しかし、そのどれでもない行に対してにFindControlを使用する必要がありますか?各行には、IDが 'Ques_id_label'のラベルがあります。特定のラベルを見つけるには、目的の行を指定する必要があります。 DataLisViewとは動作しませんでしたが、論理的にはAsp:Repeaterと似ています。

protected void SaveAnswer(Object Sender, RepeaterCommandEventArgs e) 
{ 
    Label Ques_id_label = (Label)e.Item.FindControl("Ques_id_label"); 

e.itemであなたが意図した行を指定:コマンドが行から送信されたRepeaterの行でコントロールを見つけるために。

0

あなたはQues_id_labelを見つけることにFindControlを使用しますが、その後、とにかく、通常はそれを参照:Ques_id_label.Text =

それはQuestion_Id.Text = Convert.ToString(question_id);する必要がありますFindControlで割り当てたIDを使用します。

でも、それはコンパイルされましたか? Visual Studioのようなエディタを使用していますか?あなたのスニペットを試したときに、それが想定されているようにエラーThe name 'Ques_id_label' does not exist in the current contextを与えたので。

+0

私はID「Ques_id_labelをフロントエンドのラベルコントロールに割り当てました。はい、Question_Id.Text = Convert.ToString(question_id)を試しました。私はVisual Studioを使用しています。オブジェクトに設定されている "と私はまた、コンテキストビュー..... @VDWWDを取っていない背後にあるコードをDetailsViewコントロールの内側にassingningしているコントロールを問題にしている – Rahul

関連する問題