webForumDet fria alternativet

Events i c#

.NETur .NET

2 svar · 327 visningar · startad av trexter

Medlem sedan mars 20021 889 inlägg
Frågan#1

Koden nedan är en programmeringsuppgift där man ska lära sig hur events fungerar i c#. Jag undrar hur jag kan hämta data från checkboxar och radiobuttons utan att gå den omständiga senvägen via Request.Form. Som jag lyckats göra med text-fältet.

<%@ Page Language="C#" %>
<script runat="server">

    void breakfast(object sender, EventArgs e)
    {
        Response.Write("Thank you very much " + name.Text + ". <br />" +
        "You have chosen the following for breakfast: ");
    
        if (Request.Form["pancakes"] == "on") {
            Response.Write("Pancakes. ");
        }
        if (Request.Form["cereal"] == "on") {
            Response.Write("Cereals. ");
        }
        if (Request.Form["eggs"] == "on") {
            Response.Write("Eggs. ");
        }
    
        Response.Write("<br />I will prepare it for you: " + Request.Form["radio1"]);
    
    
    
    }

</script>
<html>
<head>
</head>
<body>
    <form runat="server">
        <h4>Please enter your name 
        </h4>
        <asp:TextBox id="name" runat="server"></asp:TextBox>
        <br />
        <br />
        <h4>Want for breakfast? 
        </h4>
        <asp:checkbox id="cereal" runat="server" text="Cereal"></asp:checkbox>
        <asp:checkbox id="eggs" runat="server" text="Eggs"></asp:checkbox>
        <asp:checkbox id="pancakes" runat="server" text="Pancakes"></asp:checkbox>
        <h4>Feed me: 
        </h4>
        <asp:radiobuttonlist id="radio1" runat="server">
            <asp:listitem id="Now" runat="server" value="Now" />
            <asp:listitem id="Later" runat="server" value="Later" />
        </asp:radiobuttonlist>
        <asp:button id="button1" onclick="breakfast" runat="server" text="Click"></asp:button>
        <asp:label id="message" runat="server"></asp:label>
    </form>
</body>
</html>

:)

Medlem sedan apr. 20012 266 inlägg
#2

Först och främst bör inte Request.Form avändas normalt i ASP.NET. Värdet(om den är checkad eller ej) på en checkbox får du genom att ta t.ex. cereal.Checked som retunerar ett bool värde. När det gäller radiobuttonlist så gör du så här. radio1.SelectedItem.Value eller radio1.SelectedItem.Text.

Medlem sedan sep. 20011 914 inlägg
#3

Hade redan kommit en bit i mitt svar när jag såg renholm svar, så här är det i alla fall. Konverteringen vb.net --> C# får du göra själv. :)

.aspx

<h4>Want for breakfast?</h4>
<asp:CheckBoxList ID="cblstBreakfast" Runat="server">
   <asp:ListItem text="Cereal"/>
   <asp:ListItem text="Eggs"/>
   <asp:ListItem text="Pancakes"/>
</asp:CheckBoxList>
<h4>Feed me</h4>
<asp:RadioButtonList ID="rlstFeed" Runat="server">
   <asp:ListItem text="Now"/>
   <asp:ListItem text="Later"/>
</asp:RadioButtonList><br/>
<asp:button id="btBreakfast" onclick="breakfast_click" runat="server" text="Click"/><br/>
<asp:label id="lbMessage" runat="server"/>

code-behind

Protected WithEvents rlstFeed As RadioButtonList
Protected WithEvents cblstBreakfast As CheckBoxList
Protected WithEvents btBreakfast As Button
Protected WithEvents lbMessage As Label

Sub breakfast_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btBreakfast.Click
   Dim lstItem As ListItem
   lbMessage.Text = "Want for breakfast?<br/>"
   For Each lstItem In cblstBreakfast.Items
      If lstItem.Selected Then
         lbMessage.Text &= lstItem.Text & "<br/>"
      End If
   Next
   lbMessage.Text &= "<br/>Feed me?<br/>"
   lbMessage.Text &= rlstFeed.SelectedItem.Text
End Sub
137 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)