por Bruno de Andrade

DropDownList dentro de Repeater

Exemplo de como inserir um DropDownList dentro de um Repeater utilizando um relação entre dois DataSets e pegando os valores selecionados posteriormente.

Preenchendo os DataSets e fazendo a relação entre eles:

default.aspx.cs

strSQL = @"SELECT * FROM tblUsuarios";

SqlCommand usersCommand = new SqlCommand(strSQL, myConnection);
SqlDataAdapter usersDataAdapter = new SqlDataAdapter(usersCommand);
DataSet usersDataSet = new DataSet();
usersDataAdapter.Fill(usersDataSet, "Users");

strSQL = @"SELECT * FROM tblPaises";

SqlCommand paisesCommand = new SqlCommand(strSQL, myConnection);
SqlDataAdapter paisesDataAdapter = new SqlDataAdapter(paisesCommand);
DataSet paisesDataSet = new DataSet();
paisesDataAdapter.Fill(paisesDataSet, "Países");

usersDataSet.Relations.Add("relation", usersDataSet.Tables[0].Columns["paisID"],
paisesDataSet.Tables[0].Columns["paisID"], false);

repeater1.DataSource = usersDataSet.Tables[0];
repeater1.DataBind();

default.aspx

<asp:Repeater ID="repeater1" runat="server">
    <ItemTemplate>
        <asp:DropDownList ID="ddlPaises"
             DataSource='<%#((DataRowView)Container.DataItem).CreateChildView("relation")%>'
             runat="server" DataTextField="paisNome" DataValueField="paisID"/>
   </ItemTemplate>
</asp:Repeater>

Pegando os valores selecionados:

default.aspx.cs

protected void btnSave_Click(object sender, EventArgs e)
{
    for (int i = 0; i < repeater1.Items.Count; i++)
    {
        DropDownList ddlPaises = 
            (DropDownList)repeater1.Items[i].FindControl("ddlPaises");
        string strPaisSelecionado = ddlPaises.SelectedValue;
    }
}

 

Comentários

Carregando comentários

Postar um novo comentário



Processando...