ORIGINAL POSTASP.NET動的制御の追加
あり記事のトンがそこにいると、私の特定の質問のためにSO上でここに掲載答えよりも多くの質問。
は、私は、処理のためために入るから選択することができ製品ユーザーのDropDownListコントロールを持つことになりますことを作成していたWebページを持っています。それに加えて、オプションとアクセサリを含む2つの他のDropDownListコントロールがそれぞれ製品のにあります。私は、ユーザが複数の製品行を注文オブジェクトに対応するオプションおよび/または*アクセサリと一緒に入力できるようにしたいと考えています。これにより、データベース内に顧客情報を格納するレコードの量が削減されます。
ユーザーがこのDropDownListコントロールから選択されたとして、私は製品のリストを作成したいと思いますが、このリストには、ユーザーが特定のの順序のために入力する必要がある製品の数に基づいて動的に作成する必要があります。 ViewStateに自動的に保存されず、正しい方向にデータをプッシュする方法がわからないため、データを保存する必要があることを理解しています。
ViewStateを扱う複雑さのために、私のWebページを作成するためにASP.NET以外のものを使用したいのですか?それは複雑かもしれませんが、そのような行動のコースを試みるときに使用するより良い方法がありますか?
EDIT
だから、私の調査結果は、それが追加されるよう適切にデータを格納するために、私は私のデータを含むDictionaryオブジェクトにすることをRepeaterコントロールとのDataBindを使用すべきであると信じているように私にもたらしていますKeyValuePairs。私はこれを行うための単純な方法を探しています。代わりに、必要なすべてのデータを含むオブジェクトを直接追加するだけです。私は確かにこのクラスをRepeaterとDataBindに追加することができますが、Repeaterからデータを再水和することによって、私はいくつかの問題以上の原因になります。
public class Order
{
public Order() { }
public string CustomerNamer { get; set; }
public ProductList ProductOrdered { get; set; }
}
public class ProductList : List<Product>
{
public ProductList() { }
}
public class Product
{
public Product() { }
public int ID { get; set; }
public string Name { get; set; }
public string ProdcutCode { get; set; }
}
BEHIND CODE:私はこのパターンを何度も成功裡に使用しましレンダリングされたページにRepeater
を通じて表現される動的なコレクションの場合
protected void order_add_Click(object sender, EventArgs e)
{
Dictionary<int, Order> objOrders = new Dictionary<int, Order>();
Order objOrder = new Order();
Product objProduct = new Product();
objProduct.Name = "Tire";
objProduct.ProductCode = "75R15";
objOrder.ProductsOrdered = new ProductList();
objOrder.ProductsOrdered.Add(objProduct);
objOrders.Add(0, objOrder);
rptTest.DataSource = objOrders;
rptTest.DataBind();
}
.NETの使用やViewStateの複雑さに問題はありません。あなたがデータをプッシュしようとしている「正しい方向」は何ですか?データベース、セッション...? – capdragon
現時点では、ViewStateに格納された情報を必要とするので、PostBackでは、送信または保存ボタンを使用して、コントロールを取得して、データをMySql DALにポストするためのデータオブジェクトクラスに読み込むことができます。 – Jeff