2011-07-26 14 views
0

は私がたDetailsView内のListBoxを持って、それぞれ異なる(SQL)データソース:列にアクセスしようとするとDetailsView内のListBox内のSqlDataSourceからアクセスフィールドにアクセスするにはどうすればよいですか?

<asp:DetailsView ID="dvwSomeDetailsView" DataSourceID="sdsSomeDetailsView" runat="server" ... 
    ... 
    <asp:TemplateField HeaderText="SomeHeaderText"> 
     <ItemTemplate> 
      <asp:ListBox ID="lstSomeListBox" runat="server" DataSourceID="sdsSomeListBox" DataTextField="SomeColumn" DataValueField="SomeOtherColumn" Rows='<%#Eval("NumberOfRows") %>' /> 
     </ItemTemplate> 
    </asp:TemplateField> 
    .... 
</asp:DetailsView> 
.... 

「NumberOfRowsは」今試してみて、関連付けられているのSqlDataSourceからそれを読んでいるようです例外としてDetailsViewがスローされます。 "DataBinding:System.Data.DataRowViewにNumberOfRowsという名前のプロパティが含まれていません"。

ListBoxのアイテムを、そのListBoxのSqlDataSourceから返されるもので満たすことは問題ではありませんが、他の列からデータにアクセスするにはどうすればよいですか? Rows = "NumberOfRows"のように列名を入力するだけでは機能しません。

更新

私は実際にやりたいものの明確化:私は、リストボックスの「行」プロパティは、項目の数を動的に設定することにしたい、そこすなわちある場合は6つの項目、「行"を6に設定して、スクロールが不要であり、空のスペースがリストボックスにないようにする必要があります。

ありがとうございます。

G.

答えて

0

ない、これはあなたが望むものを完全にですが、あなたはこれを試すことができるかどうかを確認します。

// Get the ListBox - I used the first row for sake of illustration 
ListBox lb = (ListBox)dvwSomeDetailsView.Rows[0].FindControl("lstSomeListBox"); 

// Now you can access the ListItemCollection of the ListBox 
string value = lb.Items[0].Value; 

うまくいけば、少なくともあなたは正しい方向に向かってしまいます。

+0

残念ながら、これは役に立ちません - 私はアクセスして行プロパティを設定できますが、これはUIに反映されません。 – Gorgsenegger

+0

@Gorgsenegger - あなたは何をしようとしているのかを詳しく説明できますか? – Tim

+0

質問が更新されました – Gorgsenegger

関連する問題