访问嵌套转发器

时间:2013-07-10 20:06:18

标签: c# asp.net repeater

问候,我会尝试做出这个简短明了的

我有一个NumericTextBox和一个按钮,按下按钮它会告诉转发器 A 它应该根据NumericTextBox上引入的值重复多少次:

    protected void ButtonRepeaterA_Click(object sender, EventArgs e)
    {
        string x = RadNumericTextBoxRepeatsOnA.Text.Trim();
        int y = Convert.ToInt32(x);

        int[] RowCount = new int[y];
        RepeaterA.DataSource = RowCount;
        RepeaterA.DataBind();

        int currentYear = DateTime.Now.Year;

        for (int i = currentYear; i <= currentYear + 100; i++)
        {
            //DropDownCCYear.Items.Add(new RadComboBoxItem(i.ToString(), i.ToString()));

            foreach (RepeaterItem item in RepeaterA.Items)
            {
                RadComboBox DropDownCCYear = (RadComboBox)item.FindControl("DropDownCCYear");
                DropDownCCYear.Items.Add(new RadComboBoxItem(i.ToString(), i.ToString()));
            }
        }


    }

问题出现在转发器 B ,它位于转发器内 A

它的行为类似于转发器 A ,但我只希望按下按钮以影响按钮所在的转发器,因此它不会清除内部控件上引入的数据转发器 B 的其他重复,如果我使用&#34; foreach转发器&#34;如下:

    protected void ButtonRepeaterB(object sender, EventArgs e)
    {

        foreach (RepeaterItem item in RepeaterA.Items)
        {
            Repeater RepeaterB = (Repeater)item.FindControl("RepeaterB");
            RadNumericTextBox RadNumericTextBoxRepeatsOnB = (RadNumericTextBox)item.FindControl("RadNumericTextBoxRepeatsOnB");

            string x = RadNumericTextBoxRepeatsOnB.Text.Trim();
            int y = Convert.ToInt32(x);

            int[] RowCount = new int[y];
            RepeaterB.DataSource = RowCount;
            RepeaterB.DataBind();
        }
    }

是否有&#34; forthis repeater&#34; -like功能? 任何想法我怎么能接近这个?

1 个答案:

答案 0 :(得分:0)

Repeater有一个ItemCommand事件,我认为这对您有用。当Button的{​​{1}}事件发生时,如果您尚未设置Click的{​​{1}}事件处理程序,ItemCommand事件将吞并它。

Button事件中,您可以使用Click参数来确定哪个按钮,ItemCommand来确定它来自哪个e

我对你的问题感到有点困惑,但我认为这是你正在努力的答案。这有帮助吗?