C# asp.net C中的按钮单击事件不会更改文本框值
我遇到了一个问题,我无法获取任何控件的值,而不仅仅是按钮单击事件中的文本框,所以这里是一个场景,您可以跳过它,只需查看我的按钮单击事件 页面产品正在执行2个操作 创造 使现代化 当用户在updpage中单击GridView上的编辑时,它将重定向到要更新的产品页面,同一页面也在执行创建产品操作,因此当我收到QueryString值时,我将更新产品表,当我不这样做时,我只执行创建操作 现在,当没有QueryString值时,我被卡住了,所以文本框会用新值更新,但当有值时,它们不会给我新值 这是我的密码 在pageLoad事件中,我用相应的值填充文本框 其中有一个更新操作 它是btn_submit中使用的getpicture函数 提供数据访问层并插入更新数据代码 服务器控件 单击“更新”按钮之前 在我分别更新了文本框值和单击“上载”按钮后,我的服务器控件值没有任何更改。给你 但在创建产品的情况下,它是有效的C# asp.net C中的按钮单击事件不会更改文本框值,c#,asp.net,button,C#,Asp.net,Button,我遇到了一个问题,我无法获取任何控件的值,而不仅仅是按钮单击事件中的文本框,所以这里是一个场景,您可以跳过它,只需查看我的按钮单击事件 页面产品正在执行2个操作 创造 使现代化 当用户在updpage中单击GridView上的编辑时,它将重定向到要更新的产品页面,同一页面也在执行创建产品操作,因此当我收到QueryString值时,我将更新产品表,当我不这样做时,我只执行创建操作 现在,当没有QueryString值时,我被卡住了,所以文本框会用新值更新,但当有值时,它们不会给我新值 这是我的密
Saad,我认为错误在page_load事件中。如果查询字符串中的update参数不为null,则始终使用数据库的数据替换文本框。 您的代码应该是这样的
希望它能帮助…嗨。运行代码时是否出现错误?我们可以看到aspx页面中控件的位置吗?感谢您的帮助,是的,我找到了它并准备结束问题,但再次感谢您的回答,它也是正确的,因此我正在标记它:
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["update"] !=null)
{
if (!Page.IsPostBack)
{
bindcategories();
bindachievments();
bindbrands();
}
int id = int.Parse(Request.QueryString["update"]);
string query = "SELECT * FROM ProductView WHERE id = " + id.ToString();
DataTable dtupd = new DataTable();
dtupd = param.All_data(query);
string name = "",available="",category="",brand="",achievement="",image="";
decimal price=0;
int unit = 0;
foreach (DataRow row in dtupd.Rows)
{
name = row.Field<string>("product_name");
price = row.Field<decimal>("price");
unit = row.Field<int>("unit");
image = row.Field<string>("product_image");
available = row.Field<string>("available");
category = row.Field<string>("category_name");
brand = row.Field<string>("brand_name");
achievement = row.Field<string>("achievement");
}
txt_name.Text = name;
txt_price.Text = price.ToString();
txt_unit.Text = unit.ToString();
product_image.ImageUrl = "../" + image;
dd_available.ClearSelection();
dd_available.SelectedValue = available;
dd_category.ClearSelection();
dd_category.Items.FindByText(category).Selected = true;
dd_brand.ClearSelection();
dd_brand.Items.FindByText(brand).Selected = true;
dd_achievment.ClearSelection();
dd_achievment.Items.FindByText(achievement).Selected = true;
btn_Insert.Text = "Update Product";
}
else
{
if (!Page.IsPostBack)
{
bindcategories();
bindbrands();
bindachievments();
}
if (!FileUpload1.HasFile)
{
product_image.ImageUrl = "../assets/images/products/default.png";
}
}
}
protected void btn_Insert_Click(object sender, EventArgs e)
{
getpicture();
SqlCommand cmd;
string pathimage ="";
if (pathimage == "")
{
pathimage = product_image.ImageUrl;
}
else
{
pathimage = ViewState["pathimage"].ToString();
}
if (Request.QueryString["update"] != null)
{
int id = int.Parse(Request.QueryString["update"]);
string query = "UPDATE Products SET product_name=@PRODUCTNAME,price=@PRIZE,unit=@UNIT,product_image=@IMAGE,available=@AVAILABLE,product_category=@CATEGORY,product_brand=@BRAND,product_achv=@ACHIV WHERE id = @ID";
cmd = new SqlCommand(query);
txt_name.Text = "";
cmd.Parameters.Add("@PRODUCTNAME", txt_name.Text);
cmd.Parameters.Add("@PRIZE", txt_price.Text);
cmd.Parameters.Add("@UNIT", txt_unit.Text);
cmd.Parameters.Add("@IMAGE", pathimage);
cmd.Parameters.Add("@AVAILABLE", dd_available.SelectedItem.ToString());
cmd.Parameters.Add("@CATEGORY", dd_category.SelectedValue);
cmd.Parameters.Add("@BRAND", dd_brand.SelectedValue);
cmd.Parameters.Add("@ACHIV", dd_achievment.SelectedValue);
cmd.Parameters.Add("@ID", id);
param.InsertUpdateData(cmd);
}
else
{
string query = "INSERT INTO Products(product_name,price,unit,product_image,available,product_category,product_brand,product_achv) VALUES(@PRODUCTNAME,@PRIZE,@UNIT,@IMAGE,@AVAILABLE,@CATEGORY,@BRAND,@ACHIV)";
cmd = new SqlCommand(query);
cmd.Parameters.Add("@PRODUCTNAME", txt_name.Text);
cmd.Parameters.Add("@PRIZE", txt_price.Text);
cmd.Parameters.Add("@UNIT", txt_unit.Text);
cmd.Parameters.Add("@IMAGE", pathimage);
cmd.Parameters.Add("@AVAILABLE", dd_available.SelectedItem.ToString());
cmd.Parameters.Add("@CATEGORY", dd_category.SelectedValue);
cmd.Parameters.Add("@BRAND", dd_brand.SelectedValue);
cmd.Parameters.Add("@ACHIV", dd_achievment.SelectedValue);
param.InsertUpdateData(cmd);
}
}
private void getpicture()
{
try
{
if (FileUpload1.PostedFile != null)
{
string FileName = Path.GetFileName(FileUpload1.PostedFile.FileName);
string root = Server.MapPath("~");
string path = root + "assets\\images\\products\\";
FileUpload1.SaveAs(path + FileName);
ViewState["pathimage"] = "/assets/images/products/" + FileName;
this.product_image.ImageUrl = "../assets/images/products/upload.png";
}
else
{
Response.Write("Select an Image");
}
}
catch (Exception ex)
{
Response.Write("Select an Image");
}
}
public Boolean InsertUpdateData(SqlCommand cmd)
{
String strConnString = System.Configuration.ConfigurationManager.ConnectionStrings["OnlineStoreConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
try
{
con.Open();
cmd.ExecuteNonQuery();
System.Web.HttpContext.Current.Response.Write("Succed");
return true;
}
catch (Exception ex)
{
System.Web.HttpContext.Current.Response.Write(ex.ToString());
return false;
}
finally
{
con.Close();
con.Dispose();
}
}
<div class="row">
<div class="col-md-6">
<asp:TextBox ID="txt_name" runat="server" CssClass="form-control" placeholder="Product Name"></asp:TextBox>
<br />
<asp:TextBox ID="txt_price" runat="server" CssClass="form-control" placeholder="Product Price"></asp:TextBox>
<br />
<asp:TextBox ID="txt_unit" runat="server" CssClass="form-control" placeholder="Product Unit"></asp:TextBox>
<br />
<asp:DropDownList ID="dd_available" runat="server" CssClass="form-control">
<asp:ListItem>Is Product Available</asp:ListItem>
<asp:ListItem>Available</asp:ListItem>
<asp:ListItem>Not Avaliable</asp:ListItem>
</asp:DropDownList>
<br />
<asp:DropDownList ID="dd_category" runat="server" CssClass="form-control"></asp:DropDownList>
<br />
<asp:DropDownList ID="dd_brand" runat="server" CssClass="form-control"></asp:DropDownList>
<br />
<asp:DropDownList ID="dd_achievment" runat="server" CssClass="form-control"></asp:DropDownList>
<br />
</div>
<div class="col-md-2"></div>
<div class="col-md-4">
<asp:Image ID="product_image" runat="server" style="height:231px;width:225px;" CssClass="form-control" />
<asp:FileUpload ID="FileUpload1" runat="server" onchange = "show_image(this);" />
</div>
</div>
<br />
<div class="row">
<div class="col-md-3 col-md-offset-6">
<asp:Button ID="btn_Insert" runat="server" Text="Create Product" CssClass="btn btn-primary btn-lg" OnClick="btn_Insert_Click" />
</div>
</div>
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["update"] !=null)
{
if (!Page.IsPostBack)
{
bindcategories();
bindachievments();
bindbrands();
int id = int.Parse(Request.QueryString["update"]);
string query = "SELECT * FROM ProductView WHERE id = " + id.ToString();
DataTable dtupd = new DataTable();
dtupd = param.All_data(query);
string name = "",available="",category="",brand="",achievement="",image="";
decimal price=0;
int unit = 0;
foreach (DataRow row in dtupd.Rows)
{
name = row.Field<string>("product_name");
price = row.Field<decimal>("price");
unit = row.Field<int>("unit");
image = row.Field<string>("product_image");
available = row.Field<string>("available");
category = row.Field<string>("category_name");
brand = row.Field<string>("brand_name");
achievement = row.Field<string>("achievement");
}
txt_name.Text = name;
txt_price.Text = price.ToString();
txt_unit.Text = unit.ToString();
product_image.ImageUrl = "../" + image;
dd_available.ClearSelection();
dd_available.SelectedValue = available;
dd_category.ClearSelection();
dd_category.Items.FindByText(category).Selected = true;
dd_brand.ClearSelection();
dd_brand.Items.FindByText(brand).Selected = true;
dd_achievment.ClearSelection();
dd_achievment.Items.FindByText(achievement).Selected = true;
btn_Insert.Text = "Update Product";
}
}
else
{
if (!Page.IsPostBack)
{
bindcategories();
bindbrands();
bindachievments();
}
if (!FileUpload1.HasFile)
{
product_image.ImageUrl = "../assets/images/products/default.png";
}
}
}