我有一個與它單選按鈕的形式和一個提交按鈕,重新載入頁面,而不是提交表單數據...我應該在形式上行動或方法,這樣做我可以得到這些單選按鈕值如何提交在ASP形式得到其值
<form id="form2" name="form2" method="post" action="" runat="server">
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
</form>
我有一個與它單選按鈕的形式和一個提交按鈕,重新載入頁面,而不是提交表單數據...我應該在形式上行動或方法,這樣做我可以得到這些單選按鈕值如何提交在ASP形式得到其值
<form id="form2" name="form2" method="post" action="" runat="server">
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
</form>
您的代碼似乎並未有任何單選按鈕控件...
樣品展示不同的選擇:
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;
}
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頁面。
仍然無法弄清楚如何在服務器端或客戶端獲取表單值 – Booonz 2012-04-28 15:09:06
您不需要。正如我所解釋的那樣,暫時忽略關於Html
我有假定你有一個頁面後面的代碼。你是否設法在頁面後面創建一個代碼xxxx.aspx.cs?如果沒有,請將onclick ='Button1_Click'添加到Button1控件,然後右鍵單擊並選擇查看代碼。如果您沒有查看代碼選項,請告訴我們。 – 2012-04-28 15:42:25
我不沒有看到任何單選按鈕。你把它們放在哪裏? – Oded 2012-04-28 14:19:44