は、あなたがデータを記述している方法は本当にのためにあまりにもよく向いていませんa DataGrid
。このコントロールは、標準の表形式で表示する予定のデータに最も適しています。ここでは、列名が一番上に表示され、その下に値の行が表示されます。また、オブジェクトの1つまたは複数のインスタンス(今のところPerson
と呼ぶ)をUIにバインドする場合は、私には少し不明です。
のは、先に行くと、そのオブジェクトを定義してみましょう:
public class Person {
public String Name { get; set; }
public String LastName { get; set; }
public int Age { get; set; }
public DateTime BirthDate { get; set; }
}
あなたのUIにPerson
の単一のインスタンスをバインドするには、簡単なHTMLテーブルが正常に動作する必要があります。私はここに値を表示するのにTextBoxes
を使用していますが、それらを編集する必要がない場合は代わりにLabel
を使用してください。
<table>
<tr><td>Name:</td><td><asp:TextBox ID="txtName" runat="server" /></td></tr>
<tr><td>Last Name:</td><td><asp:TextBox ID="txtLastName" runat="server" /></td></tr>
<tr><td>Age:</td><td><asp:TextBox ID="txtAge" runat="server" /></td></tr>
<tr><td>Birthdate:</td><td><asp:TextBox ID="txtBirthDate" runat="server" /></td></tr>
</table>
それはコードビハインドを使用して、ページ上のそれぞれのコントロールにPerson
からプロパティをバインドするために、この時点で非常に簡単です。
この同じレイアウトを使用して、Person
の複数のインスタンスをページに表示する場合は、ASP.net Repeaterに移動してください。このためのマークアップは、より多くのようになります。
protected void Page_Load(object sender, EventArgs e) {
// A simple example using Page_Load
List<Person> people = new List<Person>();
for (int i = 0; i < 10; i++) {
people.Add(new Person() {Name = "Test", Age = 10, BirthDate=DateTime.Now, LastName = "Test"});
}
if (!IsPostBack) {
repPeople.DataSource = people;
repPeople.DataBind();
}
}
注:あなたは可能性が
コードビハインドで
<asp:Repeater ID="repPeople" runat="server">
<ItemTemplate>
<table>
<tr><td>Name:</td><td><asp:TextBox ID="txtName" runat="server" Text='<%# Eval("Name") %>' /></td></tr>
<tr><td>Last Name:</td><td><asp:TextBox ID="txtLastName" runat="server" Text='<%# Eval("LastName") %>' /></td></tr>
<tr><td>Age:</td><td><asp:TextBox ID="txtAge" runat="server" Text='<%# Eval("Age") %>' /></td></tr>
<tr><td>Birthdate:</td><td><asp:TextBox ID="txtBirthDate" runat="server" Text='<%# String.Format("{0:d}", Eval("BirthDate")) %>' /></td></tr>
</table>
</ItemTemplate>
</asp:Repeater>
、あなただけRepeater
上DataSource
プロパティにPerson
のコレクションをバインド表の代わりにCSSを使用して同様のレイアウトを実現しますが、単一対複数のオブジェクトのバインドにも同じ原則が適用されます。この例のテーブルレイアウトは、最終的に定義するマークアップに置き換えてください。
Visual Studioは、多くの言語で使用されているIDEです。何のテーブル?どのようにそれを照会するつもりですか? – Oded
@OdedそれはC#/ aspxプロジェクトです。 DBはSQLです。 A、B、C、D ...に配置されるSQLからのデータは、DataSetにあります。 –
aspx ... WebFormsまたはMVC? – Oded