Hello All
i have this code for update ,
protected void btnUpdate_Click(object sender, EventArgs e)
{
if (Session["GVAssetList_ID"] != null)
{
try
{
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "SP_EditAsset";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@Asset_ID", Convert.ToInt32(Session["GVAssetList_ID"]));
cmd.Parameters.AddWithValue("@Asset_Name", txtAssetName.Text);
cmd.Parameters.AddWithValue("@Asset_SN", txtAssetSN.Text);
cmd.Parameters.AddWithValue("@Asset_Make", ddlMake.SelectedValue);
cmd.Parameters.AddWithValue("@Asset_Model", ddlModel.SelectedValue);
cmd.Parameters.AddWithValue("@Asset_Status", ddlAssetStatus.SelectedValue);
cmd.Parameters.AddWithValue("@Emp_ID_FK", ddlAssignedto.SelectedValue);
con.Open();
cmd.ExecuteNonQuery();
GVAssetList.DataBind();
lblmsg.Text = "Asset Update!!";
con.Close();
}
catch
{ }
}
}
and i have this html control which gets values form a grid view select even as below :
<asp:GridView ID="GVAssetList" runat="server" DataKeyNames="Asset_ID" AutoGenerateColumns="false"
CssClass="table table-bordered table-responsive table-striped table-hover ">
<Columns>
<asp:BoundField DataField="Asset_ID" HeaderText="Asset ID" />
<asp:BoundField DataField="Asset_Name" HeaderText="Asset Name" />
<asp:BoundField DataField="Asset_SN" HeaderText="Asset SN" />
<asp:BoundField DataField="Make" HeaderText="Asset Make" />
<asp:BoundField DataField="Model" HeaderText="Asset Model" />
<asp:BoundField DataField="Asset_Status" HeaderText="Asset Status" />
<asp:BoundField DataField="Emp_Name" HeaderText="Assinged to" />
<asp:TemplateField>
<ItemTemplate>
<asp:Button runat="server" ID="btnSelect" Text="Select" OnClick="btnSelect_Click"
CssClass="btn btn-info" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
and code behind page is below :
protected void btnSelect_Click(object sender, EventArgs e)
{
GridViewRow SelectedRow = ((sender as Button).NamingContainer as GridViewRow);
Session["GVAssetList_ID"] = GVAssetList.DataKeys[SelectedRow.RowIndex].Value;
txtAssetName.Text = SelectedRow.Cells[1].Text;
txtAssetSN.Text = SelectedRow.Cells[2].Text;
ddlMake.SelectedItem.Text = SelectedRow.Cells[3].Text;
ddlModel.SelectedItem.Text = SelectedRow.Cells[4].Text;
ddlAssetStatus.SelectedItem.Text = SelectedRow.Cells[5].Text.Trim().Replace(" ", "") == "" ? "Select Status" : SelectedRow.Cells[5].Text.Trim().Replace(" ", "");
ddlAssignedto.SelectedItem.Text = SelectedRow.Cells[6].Text.Trim().Replace(" ", "") == "" ? "Select Employee" : SelectedRow.Cells[6].Text.Trim().Replace(" ", "");
}
and i have these codes in the page load:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataTable gvdt = new DataTable("GVAssetList-table");
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
con.Open();
cmd.CommandText = "SP_GetAssetList";
cmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(gvdt);
GVAssetList.DataSource = gvdt;
GVAssetList.DataBind();
con.Close();
//call data for dropdownlist
ddlMake.DataSource = GetData("SP_ddlMake", null);
ddlMake.DataBind();
ListItem liMake = new ListItem("Select Make", "-1");
ddlMake.Items.Insert(0, liMake);
ListItem liModel = new ListItem("Select Model", "-1");
ddlModel.Items.Insert(0, liModel);
ddlModel.Enabled = false;
// asset status drop downlist
ListItem SelectStatus = new ListItem("Select Status", "-1");
ListItem NewListitem = new ListItem("New", "1");
ListItem OldListitem = new ListItem("Used", "2");
ListItem DefctListitem = new ListItem("Defective", "3");
ddlAssetStatus.Items.Add(SelectStatus);
ddlAssetStatus.Items.Add(NewListitem);
ddlAssetStatus.Items.Add(OldListitem);
ddlAssetStatus.Items.Add(DefctListitem);
// employee list drop downlist
ddlAssignedto.DataSource = GetData("SP_GetEmpList", null);
ddlAssignedto.DataBind();
ListItem liEmployee = new ListItem("Select Employee", "-1");
ddlAssignedto.Items.Insert(0, liEmployee);
}
}
the issue is , if i click update btn, it removs value from the table for dropdwon values !!
why this happens ?
regards