我有一个带有单选按钮的表单和一个提交按钮,它只重新加载页面而不提交表单数据...我应该在表单操作或方法中做什么,以便我可以获得这些单选按钮值
<form id="form2" name="form2" method="post" action="" runat="server">
<br />
<asp:Button ID="Button1" runat="server" Text="Button" />
</form>
答案 0 :(得分:2)
ASP.NET Web窗体试图让您觉得您正在使用Windows窗体应用程序之类的东西。如果你来自Html背景,你需要一些适应性。
虽然ASP.NET“FORM”拼写有相同的四个字母,但它与标准的Html&lt; FORM&gt;不同。默认情况下,Button1 不标准Html&lt; FORM&gt;中的提交按钮。您可以在ASP.NET FORM中拥有多个Button控件。每个Button控件都必须绑定到onClick事件处理程序, a la Windows窗体,然后将代码放在此事件处理程序中。
双击ASPX Design选项卡中的Button1,将在代码隐藏页面中为您生成Button1_Click事件。将您的代码放在此事件处理程序中。
ASP.NET然后生成一些Html输出以使Button1成为&lt; INPUT TYPE ='SUBMIT'&gt;带有onClick脚本的Html控件(不要与你的Button1_Click事件处理程序混淆)使用包含一个名为__VIEWSTATE的巨型表单参数发回服务器。然后服务器使用__VIEWSTATE确定您在Button1_Click事件处理程序中并继续执行那里的代码。
单选按钮也是如此。 ASP.NET将生成&lt; INPUT TYPE ='RADIO'&gt;从你的单选按钮,但你不需要(或不应该)关注自己。在Button1_Click事件处理程序中,您可以读取ASP.NET单选按钮控件的属性。
使用ASP.NET,基本上你应该不知道并放弃对生成的Html输出的控制。您应该只使用服务器上可见的对象(代码隐藏)。 &lt; asp:Button ID ='Button1'runat ='server'&gt;甚至不生成&lt; input type ='submit'name ='Button1'id ='Button1'&gt;除了最简单的ASP.NET页面。
答案 1 :(得分:1)
您的代码似乎没有任何radiobutton控件...
示例显示不同的选项:
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;
}