2013-05-03 74 views
0

不知道爲什麼這是如此困難,但我有是沒有單選按鈕鏈接到一個字段。當記錄被調用時,我想要在單選按鈕中選擇記錄的答案(是或否)。我的代碼無法識別單選按鈕的ID。任何幫助將不勝感激。以下是代碼。RadioButtonList DataBinding當以前檢查

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" %> 

<script runat="server"> 

protected void frmProfiles_PageIndexChanging(object sender, FormViewPageEventArgs e) 
{ 
RadioButton selectedRadioButton = (RadioButton)sender; 
} 

protected void onYesNochanged(object sender, EventArgs e) 
{ 
if (rblYesNo.SelectedItem.Text == "yes") 
; 
else 
; 
} 
</script> 



<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server"> 


<asp:FormView 
id="frmProfiles" 
DataSourceID="srcProfiles" 
DataKeyNames="State" 
Runat="server"> 
<ItemTemplate> 
<h1>State: <%# Eval("State") %></h1> 
<b>1. Is the SMHA Director/Commissioner a member of the Governor's Cabinet?</b> 
<%#Eval("O_1") %> 
<br /> 
<br /> 

<br /> 
<br /> 
<asp:LinkButton 
id="lnkEdit" 
Text="Edit State Information" 
CommandName="Edit" 
Runat="server" /> 

</ItemTemplate> 

<EditItemTemplate> 

<b>1. Is the SMHA Director/Commissioner a member of the Governor's Cabinet?</b> 
<br /> 

<br /> 


<asp:Label 
id="lblYesNo" 
DataSourceID="srcProfiles" 
DataKeyNames="State" 
AssociatedControlID="rblYesNo" 
Runat="server" > 
<asp:RadioButtonList id="rblYesNo" 
Runat="server" 
enabled="true" 
OnSelectedIndexChanged="onYesNochanged" > 
<asp:ListItem Text="Yes" Value="Yes" /> 
<asp:ListItem Text="No" Value="No" /> 
</asp:RadioButtonList > 
</asp:Label>  
<br /><br /> 

| 

<asp:LinkButton 
id="lnkUpdate" 
Text="Update State Information" 
CommandName="Update" 
Runat="server" /> 
    | 
<asp:LinkButton 
id="lnkCancel" 
Text="Cancel Update" 
CommandName="Cancel" 
Runat="server" /> 
</EditItemTemplate> 

</asp:FormView> 
<br /> 
Click on State Initials to go to next page.<br /> 
<asp:GridView 
id="grdState" 
DataSourceID="srcNext" 
ShowHeader="false" 
Runat="server"> 
<Columns> 
<asp:HyperLinkField 
DataTextField="State" 
DataNavigateUrlFields="State" 
DataNavigateUrlFormatString="Org2.aspx?State={0}" /> 
</Columns> 

</asp:GridView> 



<asp:AccessDataSource ID="srcProfiles" 
SelectCommand="SELECT State, O_1 FROM [P13Organization] 
WHERE State=AG" 
UpdateCommand="UPDATE [P13Organization] SET [email protected], [email protected]_1 
WHERE [email protected]" 
DataFile="K:\3NRI\Profiles\Profiles.mdb" 
runat="server"> 

<SelectParameters> 
<asp:QueryStringParameter 
Name="State" 
QueryStringField="State" /> 
</SelectParameters> 
</asp:AccessDataSource> 

<asp:AccessDataSource ID="srcNext" 
SelectCommand="SELECT State FROM [P13Organization] 
WHERE [email protected]" 
DataFile="K:\3NRI\Profiles\Profiles.mdb" 
runat="server"> 

<SelectParameters> 
<asp:QueryStringParameter 
Name="State" 
QueryStringField="State" /> 
</SelectParameters>  
</asp:AccessDataSource> 

</asp:Content> 

回答

0

rblYesNo是一個FormView內,所以你必須做這樣的事情(未測試):

RadioButton rb = (RadioButton)frmProfiles.Items.FindControl("rblYesNo"); 
if (rb.SelectedItem.Text == "Yes") etc 
+0

更重要的是,使用'frmProfiles.Items.FindControl( 「rblYesNo」)作爲RadioButton'然後執行一個空的檢查,所以你可以正確處理這個失敗的情況,而不是簡單地拋出一個NRE。 – 2013-05-03 21:18:22

+0

Ant P是對的 - 我通常在if語句之前檢查rb == null – Melanie 2013-05-03 21:23:29