Событие нажатия кнопки не срабатывает - PullRequest
0 голосов
/ 23 августа 2011

Нужна помощь.

Описание: у меня есть WorkClow Type UserControl, который запускается из команды DataGrid Add New.Шаг 1 UserControl позволяет пользователю ввести некоторые критерии поиска, нажимает кнопку «Далее», чтобы отобразить динамически созданный UserControl (шаг 2), который отображает строки данных, которые были извлечены в сетку данных.Затем пользователь выбирает строку, из которой он хочет смоделировать новую запись, и щелкает srNextButton, чтобы перейти к последнему экрану ввода данных.

Проблема: srNextButton на динамически созданном пользовательском элементе управления (шаг 2) не запускает код обработчика событий кнопок и не вызывает какой-либо тип обратной передачи.Что я сделал не так?

UserControl Step2:

    <div style="width: 1000px; height: 400px; overflow: scroll;">
        <telerik:RadGrid ID="grd1" runat="server" CellSpacing="0" GridLines="None">
            <headercontextmenu cssclass="GridContextMenu GridContextMenu_Default">
    </headercontextmenu>
            <mastertableview tablelayout="Auto" width="95%">
        <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings>
        <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column">
            <HeaderStyle Width="20px"></HeaderStyle>
        </RowIndicatorColumn>
        <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column">
            <HeaderStyle Width="20px"></HeaderStyle>
        </ExpandCollapseColumn>
        <EditFormSettings>
            <EditColumn FilterControlAltText="Filter EditCommandColumn column">
            </EditColumn>
        </EditFormSettings>
    </mastertableview>
            <clientsettings>
        <Selecting AllowRowSelect="True" />
    </clientsettings>
            <filtermenu enableimagesprites="False">
    </filtermenu>
        </telerik:RadGrid>
        <asp:Button runat="server" ID="srNextButton" OnClick="nextButton_Click" Text="Next"
            CssClass="nextButton" AutoPostBack="true" />
        <asp:Button runat="server" ID="btnCancel" OnClientClick="CancelEdit()" Text="Cancel"
            CssClass="nextButton" />
    </div>

Код Step2:

    protected void nextButton_Click(object sender, EventArgs e)
    {
        GridIndexCollection _int = this.grdPolicyCoverage.SelectedIndexes;
        GoToNextItem(this);
    }

Я также попытался добавить:

    protected override void OnInit(EventArgs e)
    {

        base.OnInit(e);
        this.PreRender += SearchResults_PreRender;

        if (!IsPostBack)
        {
            this.srNextButton.Click += new EventHandler(nextButton_Click);
        }

    }

У меня есть BaseUserControl.cs, в котором находится загрузка элемента управления

    protected void GoToNextItem(Control control)
    {

        //RadPanelBar _radPanelBar = (RadPanelBar)page.Page.FindControl("RadPanelBar1");
        //NewAdjustment _newAdjustment = (NewAdjustment)this.Page.FindControl() 
        RadPanelBar _radPanelBar =
            (RadPanelBar) control.Parent.Parent.Parent.Parent.Parent.FindControl("RadPanelBar1");

        int selectedIndex = _radPanelBar.SelectedItem.Index;

        if (selectedIndex == 1)
        {
            RadPanelItem _pnlSearchResults = (RadPanelItem)_radPanelBar.FindItemByValue("SearchResults");
            _pnlSearchResults.Controls.Add(LoadControl("~/Controls/AdjustmentWorkFlow/SearchResults.ascx"));

        }
        _radPanelBar.Items[selectedIndex + 1].Selected = true;
        _radPanelBar.Items[selectedIndex + 1].Expanded = true;
        _radPanelBar.Items[selectedIndex + 1].Enabled = true;
        _radPanelBar.Items[selectedIndex].Expanded = false;


    }

Родительский UserControl запускается, когда каждый элемент управления ниже находится в RadAjaxPanel, если это имеет значение.

1 Ответ

0 голосов
/ 24 августа 2011

просто попробуйте удалить код:

this.srNextButton.Click += new EventHandler(nextButton_Click);

из OnInit, как вы делали выше в вопросе, и поместите его в обработчик событий Page_Load без проверки IsPostBack.

как это работает сейчас?:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...