如何在asp.net中使用带有radiobuttonlist和Datalist的按钮?

时间:2014-11-07 10:16:50

标签: asp.net button datalist radiobuttonlist

请帮我完成小任务。 数据库中有两个表:学生和操作员。

学生有以下专栏:

Name
Login
City
Operator_id

操作员具有以下列:

Operator_id
OparatorName
OperatorCode

RadiobuttonList显示OparatorName

我需要从OparatorName中选择RadiobuttonList,然后按下按钮Operator selection,在Datalist中查看有OparatorName的学生列表。< / p>

有人可以帮我解决这个问题。 谢谢

我在构造函数VisualStudio中制作了一些代码:它看起来像 `          

    <br />
    <asp:RadioButtonList ID="RadioButtonList1" runat="server" DataSourceID="SqlDataSource1" DataTextField="OperatorName" DataValueField="OperatorName">
    </asp:RadioButtonList>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString2 %>" SelectCommand="SELECT [OperatorName] FROM [Operator]"></asp:SqlDataSource>
    <br />
    <br />
    <br />
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click1" />
    <br />
    <br />
    <br />
    <asp:DataList ID="DataList1" runat="server" CellPadding="4" DataSourceID="SqlDataSource2" ForeColor="#333333" RepeatColumns="3">
        <AlternatingItemStyle BackColor="White" ForeColor="#284775" />
        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <ItemStyle BackColor="#F7F6F3" ForeColor="#333333" />
        <ItemTemplate>
            OperatorID:
            <asp:Label ID="OperatorIDLabel" runat="server" Text='<%# Eval("OperatorID") %>' />
            <br />
            Adress:
            <asp:Label ID="AdressLabel" runat="server" Text='<%# Eval("Adress") %>' />
            <br />
            City:
            <asp:Label ID="CityLabel" runat="server" Text='<%# Eval("City") %>' />
            <br />
            LastName:
            <asp:Label ID="LastNameLabel" runat="server" Text='<%# Eval("LastName") %>' />
            <br />
            FirstName:
            <asp:Label ID="FirstNameLabel" runat="server" Text='<%# Eval("FirstName") %>' />
            <br />
            <br />
        </ItemTemplate>
        <SelectedItemStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
    </asp:DataList>
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString2 %>" SelectCommand="SELECT [OperatorID], [Adress], [City], [LastName], [FirstName] FROM [main] WHERE ([OperatorID] = @OperatorID) ORDER BY [FirstName] DESC, [LastName] DESC">
        <SelectParameters>
            <asp:ControlParameter ControlID="RadioButtonList1" Name="OperatorID" PropertyName="SelectedValue" Type="Int32" />
        </SelectParameters>
    </asp:SqlDataSource>
    <br />
    <br />
    <br />

</div>
</form>

`

任务听起来像:对于Button,以编程方式设置要检查的事件 RadioButtonList中的用户选择并构建适当的 表DataList

1 个答案:

答案 0 :(得分:0)

您可以使用以下代码:

aspx页面


<form id="form1" runat="server">
<div>
    <asp:RadioButtonList ID="RadioButtonList1" runat="server" >
    </asp:RadioButtonList>
    <br />
    <asp:Button ID="Button1" runat="server" Text="Operator selection" 
        onclick="Button1_Click" />
    <br />
    <asp:DataList ID="DataList1" runat="server">
    <ItemTemplate>
    <%# Eval("Name") %>
     <%# Eval("Login") %>
     <%# Eval("City") %>

    </ItemTemplate>
    </asp:DataList>
</div>
</form>

aspx.cs页面


public partial class _Default:System.Web.UI.Page

{

static SqlConnection con;
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        con = new SqlConnection(@"Data Source=yourservername;Initial   
                   Catalog=yourdatabase;Integrated Security=True");

        if(con.State.ToString()=="closed")
            con.Open();
        DataSet ds = new DataSet();
        SqlDataAdapter ad1 = new SqlDataAdapter();
        ad1.SelectCommand = new SqlCommand("select * from operator", con);
        ad1.Fill(ds);
        con.Close();
        RadioButtonList1.DataSource = ds.Tables[0];
        RadioButtonList1.DataTextField = "OparatorName";
        RadioButtonList1.DataValueField = "Operator_id";
        RadioButtonList1.DataBind();
        con.Close();
    }
}
protected void Button1_Click(object sender, EventArgs e)
{
    string operator_id = "";
    for (int i = 0; i < RadioButtonList1.Items.Count; i++)
    {

        if (RadioButtonList1.Items[i].Selected)
            operator_id += RadioButtonList1.Items[i].Value+",";
    }

    if (con.State.ToString() == "closed")
        con.Open();
    DataSet ds1 = new DataSet();
    SqlDataAdapter ad1 = new SqlDataAdapter();
    ad1.SelectCommand = new SqlCommand("select * from student where Operator_id IN ("+operator_id.TrimEnd(',')+")", con);
    ad1.Fill(ds1);
    con.Close();
    DataList1.DataSource = ds1.Tables[0];

    DataList1.DataBind();
    con.Close();
}

}