2012-04-28 50 views
0

我有一個與它單選按鈕的形式和一個提交按鈕,重新載入頁面,而不是提交表單數據...我應該在形式上行動或方法,這樣做我可以得到這些單選按鈕值如何提交在ASP形式得到其值

<form id="form2" name="form2" method="post" action="" runat="server"> 

    <br /> 

    <asp:Button ID="Button1" runat="server" Text="Button" /> 
</form> 
+1

我不沒有看到任何單選按鈕。你把它們放在哪裏? – Oded 2012-04-28 14:19:44

回答

1

您的代碼似乎並未有任何單選按鈕控件...

樣品展示不同的選擇:

HTML

<form id="form1" runat="server"> 
<div> 
    <p> 
     Name: 
     <asp:TextBox ID="textbox1" runat="server" /> 
     <br /> 
     Coffee preference: 
     <asp:RadioButtonList ID="CoffeeSelections" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal"> 
      <asp:ListItem>Latte</asp:ListItem> 
      <asp:ListItem>Americano</asp:ListItem> 
      <asp:ListItem>Capuccino</asp:ListItem> 
      <asp:ListItem>Espresso</asp:ListItem> 
     </asp:RadioButtonList> 
     <br /> 
    </p> 
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> 
</div> 
<div> 
    <h1> 
     Results</h1> 
    <p> 
     <asp:Label runat="server" ID="labelResults"></asp:Label></p> 
</div> 
</form> 

代碼:

//You can inspect on Page_Load 
protected void Page_Load(object sender, EventArgs e) 
{ 
    //Only inspect on submission 
    if (Page.IsPostBack) 
    { 
     if (!string.IsNullOrEmpty(CoffeeSelections.SelectedValue)) 
     { 
      labelResults.Text = CoffeeSelections.SelectedValue + "<br />"; 
     } 

     //you can also inspect request.form colletion 
     foreach (string item in Request.Form) 
     { 
      labelResults.Text += "<b>KEY</b> : " + item + " <b>VALUE</b> = " + Request.Form[item] + "<br />"; 
     } 
    } 
} 

//You can also inspect on raised control events (e.g. button) 
protected void Button1_Click(object sender, EventArgs e) 
{ 
    string _foo = CoffeeSelections.SelectedValue; 
    labelResults.Text += _foo; 

} 
0

ASP.NET Web窗體試圖給你一個錯覺,即你正在使用類似Windows窗體應用程序的東西。如果您來自Html背景,您需要一些適應性。

雖然ASP.NET「形式」與同四個字母拼寫,它是由標準的HTML <形成不同的>。默認情況下,按鈕1是而不是標準Html < FORM>中的提交按鈕。您可以在ASP.NET FORM中擁有多個Button控件。每個按鈕控件必須綁定到一個onClick事件處理程序,並且您將代碼放入此事件處理程序中。

雙擊Button1的在ASPX設計選項卡,並會爲你在網頁後面的代碼可以生成一個Button1_Click事件。把你的代碼放在這個事件處理器中。

ASP.NET然後生成一些Html輸出,以使您的Button1成爲一個< INPUT TYPE ='SUBMIT'>帶有onClick腳本的Html控件(不會與您的Button1_Click事件處理程序混淆)以回發到服務器表單參數包含一個名爲__VIEWSTATE的巨大參數。服務器然後使用__VIEWSTATE來確定您在Button1_Click事件處理程序中並繼續在那裏執行代碼。

單選按鈕也是如此。 ASP.NET將從您的單選按鈕生成< INPUT TYPE ='RADIO'>,但您不需要(或不應該)擔心這一點。在Button1_Click事件處理程序中,可以讀取ASP.NET單選按鈕控件的屬性。

在ASP.NET,基本上你應該不知道,放棄所生成的HTML輸出的控制。您應該只使用服務器上可見的對象(代碼隱藏)來處理對象。 < asp:Button ID ='Button1'runat ='server'>甚至不生成< input type ='submit'name ='Button1'id ='Button1'>除了最簡單的ASP.NET頁面。

+0

仍然無法弄清楚如何在服務器端或客戶端獲取表單值 – Booonz 2012-04-28 15:09:06

+0

您不需要。正如我所解釋的那樣,暫時忽略關於Html

的一切。如果您的ASP.NET具有,那麼在您的代碼中,您可以執行if(X1.Checked)...做一些工作... – 2012-04-28 15:15:46

+0

我有假定你有一個頁面後面的代碼。你是否設法在頁面後面創建一個代碼xxxx.aspx.cs?如果沒有,請將onclick ='Button1_Click'添加到Button1控件,然後右鍵單擊並選擇查看代碼。如果您沒有查看代碼選項,請告訴我們。 – 2012-04-28 15:42:25