Reputation: 405
I want to bind dropdown list in a gridview with datasiursce coming from data base, and i also want to edit and update it if required.
The datasource contains the data i want to fetch,its doesnt bind
if (gvItem.Rows.Count > 0)
{
for (int i = 0; i < gvItem.Rows.Count; i++)
{
DropDownList sup = (DropDownList)gvItem.Rows[i].FindControl("ddlsup");
baplan.Condition = "sup";
DataSet dss = new DataSet();
dss = baplan.getpro();
sup.DataSource = dss;
sup.DataBind();
sup.DataTextField = "Name";
sup.DataValueField = "Id";
}
}
Upvotes: 1
Views: 11933
Reputation: 749
protected void grdAt_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DropDownList ddl_GrdDtype = (DropDownList)e.Row.FindControl("ddlGrdDtype");
Label lbl_grdStatus = (Label)e.Row.FindControl("lblgrdStatus");
DataTable dt = attBL.DutyTypeMasterDDLBindForAttendance_L();
if (dt.Rows.Count > 0)
{
ddl_GrdDtype.DataSource = dt;
ddl_GrdDtype.DataValueField = "DutyCode";
ddl_GrdDtype.DataTextField = "DutyTypeNick";
ddl_GrdDtype.DataBind();
ddl_GrdDtype.Items.Insert(0, "Select");
}
ddl_GrdDtype.SelectedItem.Text = lbl_grdStatus.Text;
}
}
Upvotes: 0
Reputation: 21365
In case you are still looking for an answer, this is a detailed example:
<asp:GridView runat="server" ID="gridView" AutoGenerateColumns="False"
onrowdatabound="gridView_RowDataBound"
onrowcancelingedit="gridView_RowCancelingEdit"
onrowediting="gridView_RowEditing" onrowupdating="gridView_RowUpdating">
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField HeaderText="First Name" DataField="FirstName" />
<asp:BoundField HeaderText="Last Name" DataField="LastName" />
<asp:TemplateField HeaderText="Country">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Country.Name") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList runat="server" ID="ddlCountries" DataTextField="Name" DataValueField="ID">
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.BindGrid();
}
}
protected void gridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
var t = e.Row.RowType;
if (t == DataControlRowType.DataRow)
{
if (this.gridView.EditIndex >= 0 && e.Row.RowIndex == this.gridView.EditIndex)
{
var d = e.Row.FindControl("ddlCountries") as DropDownList;
var em = e.Row.DataItem as Employee;
d.DataSource = this.GetCountries();
d.DataBind();
d.SelectedValue = em.Country.ID.ToString();
}
}
}
protected void gridView_RowEditing(object sender, GridViewEditEventArgs e)
{
this.gridView.EditIndex = e.NewEditIndex;
this.BindGrid();
}
protected void gridView_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
this.gridView.EditIndex = -1;
this.BindGrid();
}
protected void gridView_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
var row = this.gridView.Rows[e.RowIndex];
var c = (DropDownList)row.FindControl("ddlCountries");
var newValue = c.SelectedValue;
// save the changes
this.gridView.EditIndex = -1;
this.BindGrid();
}
Upvotes: 1
Reputation: 405
if (gvItem.Rows.Count > 0)
{
for (int i = 0; i < gvItem.Rows.Count; i++)
{
DropDownList sup = (DropDownList)gvItem.Rows[i].FindControl("ddlsup");
baplan.Condition = "sup";
DataSet dss = new DataSet();
dss = baplan.getpro();
sup.DataSource = dss;
sup.DataTextField = "Name";
sup.DataValueField = "Id";
sup.DataBind();
}
}
Upvotes: 1