Как заполнить выбранное значение в раскрывающемся списке внутри шаблона элемента в сетке?

626 просмотра

1 ответ

Мой код gridview на странице aspx:

    <asp:TemplateField HeaderText="Payments">
      <ItemTemplate>
        <asp:Label ID="Label31" runat="server" Text='<% #Eval("Payments_Status") %>'>
        </asp:Label>
      </ItemTemplate>
      <EditItemTemplate>
        <asp:DropDownList ID="ddltype" runat="server" CssClass="form-control" AutoPostBack="false">
          <asp:ListItem Value="0" Enabled="false">Select Status</asp:ListItem>
          <asp:ListItem Value="Pending">Pending</asp:ListItem>
          <asp:ListItem Value="Paid">Paid</asp:ListItem>
        </asp:DropDownList>
      </EditItemTemplate>
    </asp:TemplateField>
  </Columns>
</asp:GridView>

Если значение «Ожидание» в базе данных, раскрывающийся список должен отображаться как «Ожидание». То же самое, что и для платных.

Как заполнить выпадающий список внутри сетки, выберите selectedValue в PageLoad (ссылка на снимок экрана)

введите описание изображения здесь

Автор: Ruben rj Источник Размещён: 08.11.2019 11:14

Ответы (1)


0 плюса

protected void RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow && gvCustomers.EditIndex == e.Row.RowIndex)
    {
        DropDownList ddltype = (DropDownList)e.Row.FindControl("ddltype");
        string query = "select distinct paymenttype from paymenttypes";
        SqlCommand cmd = new SqlCommand(query);
        ddltype.DataSource = GetData(cmd);
        ddltype.DataTextField = "type";
        ddltype.DataValueField = "type";
        ddltype.DataBind();
        ddltype.Items.FindByValue((e.Row.FindControl("Label31") as Label).Text).Selected = true;
    }
}
private DataTable GetData(SqlCommand cmd)
{
    string strConnString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
    using (SqlConnection con = new SqlConnection(strConnString))
    {
        using (SqlDataAdapter sda = new SqlDataAdapter())
        {
            cmd.Connection = con;
            sda.SelectCommand = cmd;
            using (DataTable dt = new DataTable())
            {
                sda.Fill(dt);
                return dt;
            }
        }
    }
}
Автор: Nayab Размещён: 20.08.2016 11:43
Вопросы из категории :
32x32