2012-09-11 57 views
0

我目前正在從事涉及從數據庫中的問題列表創建問卷的項目。我使用帶分頁的ListView控件來顯示每個問題,並且它是答案的選擇。選項是啓用了autopostback的RadioButtons。如何獲取引起回發的控件,如果它出現在ListView ItemTemplate中

單擊某個單選按鈕並導致回發時,我想要抓取與單選按鈕關聯的文本並將其插入另一個記錄每個問題的響應的數據庫表中。由於單選按鈕位於listview控件中,因此我不知道如何處理回傳。我需要幫助找到導致回發的單選按鈕。我是ASP.Net的新手,請幫助我解決這個問題。 謝謝。

回答

1

RadioButton有一個CheckedChanged事件,您可以使用它來抓取所需的文本。

例子:

<asp:RadioButton ID="radio1" runat="server" 
    OnCheckedChanged="radio1_CheckedChanged" /> 

void radio1_CheckedChanged(object sender, EventArgs e) 
{ 
    string text = ((RadioButton)sender).Text; 
} 

,或者你可以使用控制ID:

void radio1_CheckedChanged(object sender, EventArgs e) 
{ 
    string text = radio1.Text; 
} 
+0

Thanks.But在我們處理ListView中的控件的CheckedChanged事件的方式方面,它與它之外的控件有什麼不同嗎?我在問這個,因爲我在某處讀到FindControl方法沒有找到listview項目模板中的控件。我想知道是否與CheckedChanged一樣。 – Ashwin

+0

否...'CheckedChanged'是'checkbox'控件將調用的事件,它是否在listview中並不重要,您仍然可以將'sender'強制轉換爲複選框。如果你正在處理一個listview事件,比如'ItemDataBound',那麼你將不得不使用FindControl來找到你想要的複選框。 –

+0

不,你處理事件的方式是一樣的。不同之處在於,當控件位於另一個控件的模板(即ItemTemplate)內時,您需要使用FindControl(在本例中爲ListViewItem)來訪問它。 – Alessandro

2

您可以使用事件處理程序的sender說法。例如,在CheckBoxCheckedChanged-event

void Check_Clicked(Object sender, EventArgs e) 
{ 
    var checkBox = (CheckBox) sender; 
    String text = checkBox.Text; 
} 

與每一個事件的作品,你總是可以得到它通過sender引發該事件的控件的引用。

+2

每次點擊關於asp.net和datagrids,gridviews,列表等的問題時,您都可以信賴@Tim Schmelter已經回答了它... + 1 – JonH

+0

非常感謝Tim。這工作。 – Ashwin

相關問題