0

私はRepeater Controlasp.netページの1つにあり、いくつかのラベルとdropdownlistリピーターコントロールに1つあります。Item_Boundデフォルトの内容は、イベントからのラベルとドロップダウン リストに入力されます。今、私は以下を達成したい:

  • ユーザーがドロップダウンリストから別のアイテムを選択すると、それに応じてラベルが更新されます。

ここでの私の問題は、デフォルトのコンテンツがから来ているためitem_bound、常にドロップダウンリストのコンテンツを上書きしますが、!IsPostBack条件を Item_Bound イベント内に配置すると、ドロップダウンリストを選択しても何も起こりません。

OnSelectedIndexChange イベントを使用し、イベント内で Response.Write を提供するだけですが、DropDownlist の値がそれ自体をオーバーライドするため、応答で何も得られません。

これにどのように取り組むべきかについて、誰かが私を助けてくれますか。


更新された質問:

これで、ドロップダウンから selectedItems を使用してリピーター ラベルの結果を取得できるようになりましたが、問題はリピーター内に複数の結果をバインドしたことです。最初の行の値。参照用の私のコードは次のとおりです。

protected void drpQuantity_SelectedIndexChanged(object sender, EventArgs e) //DropDown inside repeater control.
{
    foreach (RepeaterItem item in rptLatestProducts.Items)
    {
        if (item.ItemType == ListItemType.Item)
        {
            HiddenField hd = item.FindControl("hdProductId") as HiddenField;
            DropDownList drp = item.FindControl("drpQuantity") as DropDownList;
            Label mrp = item.FindControl("lblMRP") as Label;
            Label ourPrice = item.FindControl("lblOurPrice") as Label;
            Label discount = item.FindControl("lblDiscount") as Label;
            ScriptManager.RegisterStartupScript(updPriceByUnits, this.GetType(), "alert", "alert('" + hd.Value + "')", true); //Always returns product id of the first row.
            objPackage.ProductId = Convert.ToInt32(hd.Value);
            objPackage.TownId = objPackage.DefaultTown;
            int discountPercent = Convert.ToInt32(objPackage.GetProductPackages().Select("unit=" + drp.SelectedValue + " and productid=" + hd.Value)[0]["Discount"].ToString());
            mrp.Text = "<span class='rupee' style='font-size:14px;'>Rs</span>" + objPackage.GetProductPackages().Select("unit=" + drp.SelectedValue + " and productid=" + hd.Value)[0]["MRP"].ToString();
            ourPrice.Text = "<span class='rupee' style='font-size:14px;'>Rs</span>" + objPackage.GetProductPackages().Select("unit=" + drp.SelectedValue + " and productid=" + hd.Value)[0]["Price"].ToString();
            mrp.Visible = (mrp.Text != ourPrice.Text);
            if (discountPercent > 0)
            {
                discount.Visible = true;
                discount.Text = objPackage.GetProductPackages().Select("unit=" + drp.SelectedValue + " and productid=" + hd.Value)[0]["Discount"].ToString() + "% OFF";
            }
            else
            {
                discount.Visible = false;
            }
        }
    }
}

誰でもこれで私を助けてくれますか

4

1 に答える 1