الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

حفظ التعديل على أكثر من سجل بضغطة زر واحدة

بدأه هــــ برمجة ــــاوي في 10 أكتوبر 2011 · 5 رد · 1,125 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

أريد منكم المساعدة لو سمحتم:

لدي أداة GridView وبها عدة سجلات تمثل درجات الطلاب

وما أريده هو أن يكون هناك زر حفظ في أسفل الصفحة عندما أضغط عليه يحفظ جميع التغييرات في جميع سجلات GridView دفعة واحدة.

أنا أستطيع أعملها لكن كل سجل على حدة ومش معقول ندخل في كل مرة الدرجة ونضغط حفظ. ستكون الطريقة غير عملية. أنا أريد بضغطة زر واحدة تحفظ كل السجلات دفعة واحدة.

أرفقت مثال وأرجوا التعديل عليه

Marks.rar

وأكون شاكراً ومقدراً لكم بارك الله فيكم

=================================================================

[وسط]فَإِذَا عَزَمتَ فَتَوَكَّل عَلَى اللَّهِ إِنَّ اللَّهَ يُحِبُّ المُتَوَكِّلِينَ

=================================================================[/وسط]

#2

لا يتوفر الوقت حاليا لتطبيق مثال ولكن النقاط كالتالي

أضف template field لكل حقل بالgridview طبعا عليك باضافة textbox وتطبيق bind على كل حقل

من خلال الكود ضمن حلقة تمر على كل سطر ( سجل ) بالgridview قم باستخدام ال findcontrol على السجل الحالي (row)

الان قم بالتعديل على قيم حقول السجل الحالي

الامر بسيط يتطلب القليل مت التركيز

تم تعديل هذه المشاركة بواسطة بالعربي نتقدم في 10 أكتوبر 2011 في 19:47

#3

أخي الكريم بالعربي نتقدم

اشكر لك تجاوبك معي، لكن قمت بتجربة الطريقة لكن ما نجحت معي.

أنا أرفقت مثال في المشاركة الأولى باقي فقط كتابة الكود في زر الحفظ.

ياليت تنظر للمثال وتعطيني كود حلقة التكرار وكيفية الحصول على البيانات من gridview

وأنا أكمل باقي الكود واستعلام التعديل .

بارك الله فيك ورزقك الجنة

=================================================================

[وسط]فَإِذَا عَزَمتَ فَتَوَكَّل عَلَى اللَّهِ إِنَّ اللَّهَ يُحِبُّ المُتَوَكِّلِينَ

=================================================================[/وسط]

#4
    protected void Button1_Click(object sender, EventArgs e)
    {

        foreach (GridViewRow row in GridView1.Rows)
        {
            TextBox name = (TextBox)row.FindControl("TextBox1");
            TextBox phone = (TextBox)row.FindControl("TextBox2");
           // TextBox id = (TextBox)row.FindControl("TextBox3");you can use this id :)
            StudentsRepository sr = new StudentsRepository();
            sr.UpdateStudent(Convert.ToInt32(row.Cells[0].Text), name.Text, phone.Text);
        }
        Response.Redirect("Default.aspx");
    }

public class StudentsRepository
{
    DataClassesDataContext dc = new DataClassesDataContext();
	public StudentsRepository()
	{

	}
    public  void UpdateStudent(int id,string name, string phone)
    {
        Student std = dc.Students.Where(p => p.id == id).SingleOrDefault();
        std.name = name;
        std.phone = phone;
        dc.SubmitChanges();
    }
}

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="id" DataSourceID="SqlDataSource1" 
            EmptyDataText="There are no data records to display." Width="237px">
            <Columns>
                <asp:BoundField DataField="id" HeaderText="id" ReadOnly="True" 
                    SortExpression="id" />
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("name") %>'></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("phone") %>'></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField>
                    <ItemTemplate>
                        <asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("id") %>' 
                            Visible="False"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
            ConnectionString="<%$ ConnectionStrings:DatabaseConnectionString %>" 
            DeleteCommand="DELETE FROM [Students] WHERE [id] = @id" 
            InsertCommand="INSERT INTO [Students] ([name], [phone]) VALUES (@name, @phone)" 
            ProviderName="<%$ ConnectionStrings:DatabaseConnectionString.ProviderName %>" 
            SelectCommand="SELECT [id], [name], [phone] FROM [Students]" 
            UpdateCommand="UPDATE [Students] SET [name] = @name, [phone] = @phone WHERE [id] = @id">
            <DeleteParameters>
                <asp:Parameter Name="id" Type="Int32" />
            </DeleteParameters>
            <InsertParameters>
                <asp:Parameter Name="name" Type="String" />
                <asp:Parameter Name="phone" Type="String" />
            </InsertParameters>
            <UpdateParameters>
                <asp:Parameter Name="name" Type="String" />
                <asp:Parameter Name="phone" Type="String" />
                <asp:Parameter Name="id" Type="Int32" />
            </UpdateParameters>
        </asp:SqlDataSource>

آسف لم أقم بمعالجة ملفك ولكنني غير متفرغ :) فأعذرني

moretextboxes.rar

1
#5

بارك الله فيك أخي الكريم وجعل الله ذلك في موازين حسناتك

=================================================================

[وسط]فَإِذَا عَزَمتَ فَتَوَكَّل عَلَى اللَّهِ إِنَّ اللَّهَ يُحِبُّ المُتَوَكِّلِينَ

=================================================================[/وسط]

مواضيع مشابهة