1
我需要清除自定義的RadioButtonList中選定的項目,但它不能在回發上工作。無法用繼承的ASP.Net上的Javascript清除選定的項目RadioButtonList
我有一個從ASP.Net RadioButtonList繼承的自定義控件。 當控件具有初始選定的值時,如果我調用客戶端功能來清除選定的項目,然後執行回發,則重新選擇最初選擇的項目。
如果我使用ASP.Net RadioButtonList的,上回發,所選擇的項目被清除,從而使作品,但簡單地繼承內置的一個一類失敗
的簡化形式:
<div>
<a href="javascript:Clear()">Clear</a>
</div>
<h1>
<asp:Label Text="ready..." runat="server" ID="lblTest" /></h1>
<script type="text/javascript">
function ChangeValue() {
var obj = document.getElementById('test_1');
obj.checked = true;
}
function Clear() {
var obj = document.getElementById('test_0');
obj.checked = false;
obj = document.getElementById('test_1');
obj.checked = false;
}
</script>
<asp:Button ID="button" runat="server" onclick="button_Click" />
代碼
public class MyRadio : RadioButtonList
{
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
MyRadio test = new MyRadio();
test.ID = "test";
test.Items.Add(new ListItem("First", "First"));
test.Items.Add(new ListItem("Second", "Second"));
if (!Page.IsPostBack)
test.SelectedValue = "Second";
this.Form.Controls.Add(test);
}
protected void button_Click(object sender, EventArgs e)
{
RadioButtonList rl = this.FindControl("test") as RadioButtonList;
if (rl.SelectedItem == null)
lblTest.Text = "No selected item";
else
lblTest.Text = rl.SelectedItem.Value + " - " + rl.SelectedItem.Text;
}
背後,如果我改變「測試」是一個單選按鈕列表,並在頁面點擊清楚,然後回來後,我看到文「無選擇項」,這正是我需要的;這是在.Net 4上運行的,同樣也在.Net 4.5上嘗試過。