![](/img/trans.png)
[英]ASP.Net RadioButtonList SelectedIndexChanged event not firing
[英]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.