リピーターのWebBrowserコントロールIDインサイドを変更します

StackOverflow https://stackoverflow.com/questions/889485

  •  23-08-2019
  •  | 
  •  

質問

<ItemTemplate>
    <asp:Label runat="server"><%#DataBinder.Eval(Container.DataItem, "Question")%></asp:Label>
    <asp:DropDownList runat="server" id="<%#DataBinder.Eval(Container.DataItem, "QuestionID")%>">>
        <asp:ListItem value="1" text="Yes" />
        <asp:ListItem value="0" text="No" />
    </asp:DropDownList>
<ItemTemplate>

これは私が何をしようとしているおおよそです。もちろん、実装が故障しているが、私は実際には、これに取り掛かるだろうか上の任意の情報を見つけることができません。すべてのヘルプは高く評価されます。

編集:私は正確にやろうとしていることは、このリピータに各項目のDropDownListコントロールを追加し、フォームの送信時に、データベースに入力する各はい/いいえの回答のIDを使用しています。私が使用しているSqlDataReaderのは次の2つのフィールドがあります。質問内容とquestionIDを

役に立ちましたか?

解決

私はあなたがリピーター内部IDのサポートが組み込まれて使用したほうが良いと思います。目標はそれを割り当てることであれば、データは、あなたがこのような何かを試す可能性があるバインドされた後のIDは、適切なコントロールを見つけることは、それを容易にする。

<asp:Repeater ID="Repeater1" runat="server>
    <ItemTemplate>
        <asp:Label ID="QuestionID" Visible="False" Runat="server"><%#DataBinder.Eval(Container.DataItem, "FieldContent")%></asp:Label>
        <asp:DropDownList ID="MyDropDownList" Runat="server"></asp:DropDownList>
    </ItemTemplate>
</asp:Repeater>

次に、あなたのコードでは、あなたは、あなたが探しているラベルをリピータ内の項目をループ見つけることができるまで

foreach (RepeaterItem curItem in Repeater1.Items)
{
    // Due to the way a Repeater works, these two controls are linked together.  The questionID
    // label that is found is in the same RepeaterItem as the DropDownList (and any other controls
    // you might find using curRow.FindControl)
    var questionID = curRow.FindControl("QuestionID") as Label;
    var myDropDownList = curRow.FindControl("MyDropDownList") as DropDownList;
}   

リピータは、基本的にRepeaterItemsの集まりで構成されています。 RepeaterItemsはItemTemplateにタグを使用して指定されています。各RepeaterItemは、リピーターの性質によって、互いに関連付けられているコントロールの独自のセットを有している。

あなたは、データベースからリピーターデータを引っ張っていると言います。各リピータ項目は、クエリ結果における個々の列からのデータを表します。ですから、DropDownListコントロールにラベルとQuestionNameにQuestionIDを割り当てた場合、ラベル内のIDは、ドロップダウン内の名前と一致します。

他のヒント

あなたはマークアップファイルからコントロールを削除して、リピータのonItemDataBoundイベントをフックでした。そのイベントでは、あなたが好きなIDの割り当て、「手動」ドロップダウン・コントロールを作成することができる必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top