PDA

View Full Version : سوال: ثبت مقادیر تکست باکس های گریدویو با یک کلیک



***BiDaK***
شنبه 05 اسفند 1391, 22:49 عصر
سلام.من این کدهارو نوشتم برای ثبت حالا اینجا واسه نمره.ولی تکست باکسا مقادیره قبلی که توشون قرار گرفته و از دیتابیس قرار گرفتن اونارو میخونه و مقدار جدید داخل تکست باکسا نمیره.مشکل از کجاس؟


<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
GridLines="None" ShowHeader="False">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label runat="server" ID="lblstName" Text='<%#Eval("stName") %>'></asp:Label>
<asp:TextBox runat="server" ID="txtstGrade" Width="20" Text='<%# Eval("stGrade") %>' ></asp:TextBox>
<asp:Label runat="server" Text='<%#Eval("stID") %>' ID="lblstid"></asp:Label>
<br/>
<hr/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:Button runat="server" ID="btnsubGrade" Text="Submit" onclick="btnsubGrade_Click"/>



protected void btnsubGrade_Click(object sender, EventArgs e)
{
foreach (GridViewRow gridRow in GridView1.Rows)
{
TextBox txt = gridRow.FindControl("txtstGrade") as TextBox;
Label lbl = gridRow.FindControl("lblstid") as Label;
try
{
using (var context = new ExampleEntities())
{
int valuenu = Convert.ToInt32(txt.Text);
int valueid = Int32.Parse(lbl.Text);
var tx = (from n in context.TBL_Student where n.stID == valueid select n).FirstOrDefault();
tx.stGrade = Convert.ToInt32(valuenu);
context.SaveChanges();
GridView1.DataBind();
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
}

بخاطر پست بک شدن نیست؟اگه هست راه حل چیه؟

Mazda3
یک شنبه 06 اسفند 1391, 00:04 صبح
دوست من فکر میکنم شما مقادیر رو ابتدا در page_load در لیبیل ریخته اید .... دقیقا مشکل همونی است که خدس زده اید

اونجا قبل از اینکه اطلاعات رو در لیبیل قرار دهید یم if بذارید


if(!page.ispostback)
{
///
///
}


در جایی که کامنت گذاشتم شما اطلاعات رو از دیتابیس بگیرید ....


موفق باشید