none
DataListの行表示がバラバラになってしまう RRS feed

  • 質問

  • VS2003 Basicで開発しています。

    DataListのテンプレート項目にCheckBoxを指定しています。

    TextはDataBinderを使って項目をセットしています。

    ここで、列項目の数によって、きれいに横並びになる場合と、

    上下にバラバラに配置されてしまう場合があります。

    CheckBoxのWidthやDataListのWidthを色々変えてみましたが、

    どうもうまくいきません。

     

    水平方向の配置はどのように判断されているのでしょうか。

     

    DataListの内容は次の通りです。

     

    <DIV align="center"><asp:datalist id="DataList1" runat="server" BorderColor="SlateBlue" BackColor="Aquamarine" Width="620px"
         CellPadding="1" CellSpacing="1" RepeatColumns="6" GridLines="Both">
         <HeaderTemplate>
          <FONT face="MS UI Gothic">記号一覧</FONT>
         </HeaderTemplate>
         <SelectedItemTemplate>
          <FONT face="MS UI Gothic"></FONT>
         </SelectedItemTemplate>
         <FooterTemplate>
          <FONT face="MS UI Gothic"></FONT>
         </FooterTemplate>
         <ItemTemplate>
          <FONT face="MS UI Gothic">
           <asp:CheckBox id=CheckBox1 runat="server" Width="120px" Text='<%# DataBinder.Eval(Container.dataitem, "記号") %>'>
           </asp:CheckBox></FONT>
         </ItemTemplate>
         <AlternatingItemTemplate>
          <FONT face="MS UI Gothic"></FONT>
         </AlternatingItemTemplate>
        </asp:datalist>

    </DIV>

    2007年6月19日 2:35

すべての返信

  • DataListにWidthが620pxと指定してあるからだと思います。
    そこではなく、TemplateColumnで

     

    <ItemStyle Width="100px"></ItemStyle>

     

    としたり、

     

    <HeaderStyle Width="100px"></HeaderStyle>

     

    としてみて下さい。

    2007年6月19日 8:43
    モデレータ
  • ご回答ありがとうございます。

     

    ItemTemplateでWidthを設定してもうまくいかなかったので、

    どうしてか色々やってみたところ、

     

    VSのデザインから項目テンプレートをクリックして表示した後、

    AlternatingItemTemplateの入力エリアをクリックしただけで、

    (意図したものではなく、色々やっている間にクリックしていたのですが)

     <AlternatingItemTemplate>
       <FONT face="MS UI Gothic"></FONT>
     </AlternatingItemTemplate>

    という記述がHTMLに追加されてしまい、それが悪さをしていたようです。

    削除したら、うまくいきました。

     

    理由はよく分かりません・・・

    2007年6月20日 8:30