簡體   English   中英

ASP.NET RadioButtonList幫助。 如果設置了selectedItem,則該項目不會對SelectedIndexChanged事件作出反應

[英]ASP.NET RadioButtonList help. If I set a selectedItem, that item doesn't react to SelectedIndexChanged event

我的網絡表單上有一個RadioButtonList。 我嘗試了兩種不同的方法來設置所選項目。 我已經在標記和代碼中嘗試過,例如Page_Load事件。 它會正確設置並顯示。 我的問題是,選定的單選按鈕不再響應SelectedIndexChanged事件。 其他項目按預期工作,如果我刪除設置selectedItem的代碼,則單選按鈕按預期工作。 有什么辦法可以通過代碼設置單選按鈕,它的行為仍與我期望的一樣。 我猜,如果您強制選擇一個按鈕,那么它不會改變。 有誰知道如何解決這個問題,以便我可以默認選擇它,但仍然按照我想要的方式運行?

 <asp:RadioButtonList ID="rblPaymentType" runat="server" AutoPostBack="True" RepeatDirection="Horizontal"
            RepeatLayout="Flow">
            <asp:ListItem Value="benefit" Text="Benefit" Selected="True"/>
            <asp:ListItem Value="expense" Text="Expense" />
        </asp:RadioButtonList>

這生活在我有一個事件的ascx中

  public delegate void SwitchBenefitTypeHandler(object sender, EventArgs e);
    public event SwitchBenefitTypeHandler SwitchedBenefit;

 protected void Page_Load(object sender, EventArgs e)
    {
        WireEvents();
    }


    private void WireEvents()
    {
        rblPaymentType.SelectedIndexChanged += (sender, args) => SwitchedBenefit(sender, args);

    }

然后在aspx上,將處理程序函數連接到該事件。

if (header is PaymentHeader)
                (header as PaymentHeader).SwitchedBenefit += (paymentForm as PaymentBaseControl).Update;

最后是處理程序功能

public override void Update(object sender, EventArgs e)
    {
        if (sender is RadioButtonList)
        {
            IsExpense = (sender as RadioButtonList).SelectedValue == "expense";
            UpdateCalcFlag();
            UpdateDropDownDataSources();
            UpdatePaymentTypeDropDown();
            ResetBenefitLabels();
            FormatAmountTextBox();
        }
    }

我希望足夠的代碼。 當我不在RadioButtonList中設置SelectedItem時,一切都很好,但是我需要設置它。

這是指向有相同問題的人的鏈接。 它與ASP.NET AJAX有關。 單擊此處謝謝,〜ck在聖地亞哥

嘗試這個:

radiobutton.Items.FindByText("VALUE").Selected = true;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM