Getting error of Input String problem.
ddlIdType.DataSource = ds;
at this line.
Also wants to fire selectedIndexed Changed event to get selected item values .
<div class="col-md-12 col-lg-12">
<asp:GridView ID="grdGuests" runat="server" AutoGenerateColumns="false" ShowFooter="true" CssClass="table table-condensed table-bordered table-hover"
OnRowDataBound="grdGuests_RowDataBound" Style="margin-bottom: 0px" RowStyle-Height="15px">
<Columns>
<asp:TemplateField HeaderText="Id" HeaderStyle-CssClass="bg-info">
<ItemTemplate>
<asp:Label ID="lblId" runat="server" Text='<%# Eval("Id") %>' />
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name" HeaderStyle-CssClass="bg-info">
<ItemTemplate>
<asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>' />
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtName" runat="server" CssClass="form-control input-sm" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Last Name" HeaderStyle-CssClass="bg-info">
<ItemTemplate>
<asp:Label ID="lblCountry" runat="server" Text='<%# Eval("Last_Name") %>' />
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtLastName" runat="server" CssClass="form-control input-sm" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Gender" HeaderStyle-CssClass="bg-info">
<ItemTemplate>
<asp:Label ID="lblGender" runat="server" Text='<%# Eval("Gender") %>' />
</ItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="drpGender" runat="server" CssClass="form-control input-md">
<asp:ListItem Text="MALE" Value="MALE"></asp:ListItem>
<asp:ListItem Text="FEMALE" Value="FEMALE"></asp:ListItem>
</asp:DropDownList>
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Age" HeaderStyle-CssClass="bg-info">
<ItemTemplate>
<asp:Label ID="lblAge" runat="server" Text='<%# Eval("Age") %>' />
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtAge" runat="server" CssClass="form-control input-sm" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ID Type" HeaderStyle-CssClass="bg-info">
<ItemTemplate>
<asp:Label ID="lblID_Type" runat="server" Text='<%# Eval("ID_Type") %>' />
</ItemTemplate>
<FooterTemplate>
<asp:DropDownList ID="drpID_Type" runat="server" CssClass="form-control input-md" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="ID Type Key" HeaderStyle-CssClass="hidden">
<ItemTemplate>
<asp:Label ID="lblID_Type_Key" runat="server" Text='<%# Eval("ID_Type_Key") %>' />
</ItemTemplate>
<ItemStyle CssClass="hidden" />
<FooterTemplate>
<asp:HiddenField ID="hfID_Type_Key" runat="server" Value="0" />
</FooterTemplate>
<FooterStyle CssClass="hidden" />
</asp:TemplateField>
<asp:TemplateField HeaderText="ID Num" HeaderStyle-CssClass="bg-info">
<ItemTemplate>
<asp:Label ID="lblIDNum" runat="server" Text='<%# Eval("ID_Num") %>' />
</ItemTemplate>
<FooterTemplate>
<asp:TextBox ID="txtIdNum" runat="server" CssClass="form-control input-sm" />
</FooterTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Action" HeaderStyle-CssClass="bg-info">
<ItemTemplate>
<asp:Button Text="Delete" runat="server" OnClick="DeleteGuest" CommandArgument='<%# Eval("Id" )%>' CssClass="btn btn-block btn-danger btn-sm" />
</ItemTemplate>
<FooterTemplate>
<asp:Button ID="btnAdd" runat="server" Text="Add" OnClick="AddGuest" CommandArgument='<%# Eval("Id" )%>' CssClass="btn btn-block btn-success btn-sm" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
<EmptyDataTemplate>
<table class="table table-condensed table-bordered table-hover" style="margin-bottom: 0px">
<tr>
<th scope="col" class="bg-info">Id </th>
<th scope="col" class="bg-info">Name </th>
<th scope="col" class="bg-info">Last Name </th>
<th scope="col" class="bg-info">Gender </th>
<th scope="col" class="bg-info">Age </th>
<th scope="col" class="bg-info">ID_Type </th>
<th scope="col" class="hidden">ID_Type_Key </th>
<th scope="col" class="bg-info">ID Num </th>
<th scope="col" class="bg-info">Action </th>
</tr>
<tr>
<td></td>
<td>
<asp:TextBox ID="txtName" runat="server" CssClass="form-control input-sm" />
</td>
<td>
<asp:TextBox ID="txtLastName" runat="server" CssClass="form-control input-sm" />
</td>
<td>
<asp:DropDownList ID="drpGender" runat="server" CssClass="form-control input-md">
<asp:ListItem Text="MALE" Value="MALE"></asp:ListItem>
<asp:ListItem Text="FEMALE" Value="FEMALE"></asp:ListItem>
</asp:DropDownList>
</td>
<td>
<asp:TextBox ID="txtAge" runat="server" CssClass="form-control input-sm" />
</td>
<td>
<asp:DropDownList ID="drpID" runat="server" CssClass="form-control input-md" />
</td>
<td class="hidden"></td>
<td>
<asp:TextBox ID="txtIdNum" runat="server" CssClass="form-control input-sm" />
</td>
<td>
<asp:Button ID="btnAdd" runat="server" Text="AddGuest" OnClick="AddGuest" CssClass="btn btn-block btn-success btn-sm" CommandArgument='<%# Eval("Id" )%>' />
</td>
</tr>
</table>
</EmptyDataTemplate>
</asp:GridView>
</div>
</div>
</div>
</div>
</div>
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[8] { new DataColumn("Id"), new DataColumn("Name"), new DataColumn("Last_Name"), new DataColumn("Gender"), new DataColumn("Age"), new DataColumn("ID_Type"), new DataColumn("ID_Type_Key"), new DataColumn("ID_Num") });
//dt.Rows.Add(1, "John Hammond", "USA");
//dt.Rows.Add(2, "Mudassar Khan", "India");
//dt.Rows.Add(3, "Suzanne Mathews", "France");
//dt.Rows.Add(4, "Robert Schidner", "UK");
grdGuests.DataSource = dt;
grdGuests.DataBind();
ViewState["Data"] = dt;
this.Page.Title = "Booking Master";
BindBookingMode();
BindRooms();
}
}
protected void AddGuest(object sender, EventArgs e)
{
Control control = null;
if (grdGuests.FooterRow != null)
{ control = grdGuests.FooterRow; }
else
{
control = grdGuests.Controls[0].Controls[0];
}
string name = (control.FindControl("txtName") as TextBox).Text.Trim();
string lastname = (control.FindControl("txtLastName") as TextBox).Text.Trim();
string gender = (control.FindControl("drpGender") as DropDownList).Text.Trim();
string age = (control.FindControl("txtAge") as TextBox).Text.Trim();
//string ID_Type = (control.FindControl("drpID_Type") as DropDownList).Text.Trim();
//string ID_Type_Key = (control.FindControl("hfID_Type_Key") as HiddenField).Value.Trim();
string Id_Num = (control.FindControl("txtIdNum") as TextBox).Text.Trim();
DataTable dt = ViewState["Data"] as DataTable;
int lastId;
if (dt.Rows.Count == 0)
{
lastId = 1;
//dt.Rows.Add(lastId, name, gender, age,ID_Type,ID_Type_Key,Id_Num);
dt.Rows.Add(lastId, name, gender, age);
}
else
{
lastId = Convert.ToInt32(dt.Rows[dt.Rows.Count - 1]["Id"].ToString());
dt.Rows.Add(lastId + 1, name, gender, age);
// dt.Rows.Add(lastId + 1, name, gender, age, ID_Type, ID_Type_Key, Id_Num);
}
grdGuests.DataSource = dt; grdGuests.DataBind();
ViewState["Data"] = dt;
}
protected void DeleteGuest(object sender, EventArgs e)
{
string id = ((sender as Button)).CommandArgument;
DataTable dt = ViewState["Data"] as DataTable;
DataRow dr = dt.Select("Id=" + id)[0];
dt.Rows.Remove(dr);
grdGuests.DataSource = dt;
grdGuests.DataBind();
ViewState["Data"] = dt;
}
protected void grdGuests_RowDataBound(object sender, GridViewRowEventArgs e)
{
var ddlIdType = (DropDownList)e.Row.FindControl("drpID_Type");
SqlCommand cmd = new SqlCommand("Select * from MstBooking_Mode", hmcon);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
DataSet ds = new DataSet();
da.Fill(ds);
ddlIdType.DataSource = ds;
ddlIdType.DataTextField = "Description";
ddlIdType.DataValueField = "ID";
ddlIdType.DataBind();
ddlIdType.Items.Insert(0, new ListItem("Please Select"));
}