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

Ispostback

بدأه هوّاش في 17 يوليو 2009 · 12 رد · 937 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

وعندي تحتها على طول ديتيلز فيو تقوم بالإضافة يعني بالعربي ما فيش كود بالبيج لود وحتى بالصفحه كلها

السؤال لما اضيف سجل جديد وبعديها اعمل ريفرش للصفحه يضيف السجل مرة تانية يعني كيف أعمل postback

#2

إنت مش هتعمل Postback

إنت هتعمل بعد الإضافة على طول

grid1.DataBind()

وهتلاقي العنصر اللي ضفته ظهر معاك في الجريد على طول بدون بوست باك ولا حاجة

مشكور

Oracle Certified Professional Java Programmer 6 (SCJP)

#3

لأ انت مش فاهم علي انا اصلا ما عنديش كود ، الـDetailsView هي اللي بتضيف سجل جديد يعني الاداه مربوطه بنفس الجدول المربوط عليه الجريد

هنا لمل اعمل ريفرش بينضاف على الجريد آخر سجل اضفته من الـDetailsView السؤال كيف ممكن اتجنب هذا الخطأ باستخدام الـ IsPostback وأنا ما عنديش كود في البيج لود يعني التولز لوحدها بتضيف سجلات وبتعدل وبتحذف ما في كود بالصفحه نهائيا عشان اعمل قبل الكود

(If (! Ispostback

{

الكود المطلوب -أنا طبعا ما عنديش كود ، الـDetailsView بتضيف لوحدها -

}

#4

وين الشباب الطيبة نريد حل لهالمشكله

تم تعديل هذه المشاركة بواسطة هوّاش في 19 يوليو 2009 في 17:04

#6

هنا شرح المشكلة بالصور والكود الموجود

167967224.jpg

تظهر هذه الصفحه بعد أن تم اضافة سجل من الـ DetailsView

لاحظ أن السجل تم اضافته على الجريد الموجو فوق الـ DetailsView

الآن لو قمت بعمل Refresh للصفحه انظر ماذا يحصل في الصوره التالية :

351317880.jpg

بعد النقر على Retry يظهر الخطأ وهو تكرار نفس الحقل الذي تم اضافته في البداية من قبل المستخدم انظر الصورة

534999603.jpg

الصورة التالية هو كود الـ Page_Load لا حظ عدم وجود كود فقط كود التأكد من المستخدم لسرية المعلومات

299565873.jpg

والكود التالي هو كود الـ HTML للجريد اللي اسمه GridView3

<asp:GridView ID="GridView3" runat="server" AutoGenerateColumns="False" CellPadding="4"

DataKeyNames="PrintersID" DataSourceID="SqlDataSource3" Font-Size="12pt" ForeColor="#333333"

GridLines="None" meta:resourcekey="GridView3Resource1" Width="426px" Height="1px" Font-Bold="True">

<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />

<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />

<Columns>

<asp:TemplateField meta:resourcekey="TemplateFieldResource7" ShowHeader="False">

<EditItemTemplate>

<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Update" meta:resourcekey="LinkButton1Resource5"

Text="حفظ"></asp:LinkButton>

<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Cancel"

meta:resourcekey="LinkButton2Resource2" Text="إلغاء"></asp:LinkButton>

</EditItemTemplate>

<ItemTemplate>

<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Edit"

meta:resourcekey="LinkButton1Resource6" Text="تعديل"></asp:LinkButton>

<asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" CommandName="Delete"

meta:resourcekey="LinkButton2Resource3" Text="حذف"></asp:LinkButton>

</ItemTemplate>

</asp:TemplateField>

<asp:BoundField DataField="PrintersID" HeaderText="PrintersID" InsertVisible="False"

meta:resourcekey="BoundFieldResource10" ReadOnly="True" SortExpression="PrintersID"

Visible="False" />

<asp:BoundField DataField="ID" HeaderText="ID" meta:resourcekey="BoundFieldResource11"

SortExpression="ID" Visible="False" />

<asp:TemplateField HeaderText="نوع الطابعة" meta:resourcekey="TemplateFieldResource8"

SortExpression="PrinterType">

<EditItemTemplate>

<asp:DropDownList ID="DropDownList1" runat="server" meta:resourcekey="DropDownList1Resource1"

SelectedValue='<%# Bind("PrinterType") %>' Width="85px">

<asp:ListItem meta:resourcekey="ListItemResource8" Selected="True">HP 1100</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource9">HP 1200</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource10">HP 2200</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource11">HP 2300</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource12">Samsung</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource13">Brother</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource14">IBM</asp:ListItem>

</asp:DropDownList>

</EditItemTemplate>

<ItemTemplate>

<asp:Label ID="Label1" runat="server" meta:resourcekey="Label1Resource3" Text='<%# Bind("PrinterType") %>'></asp:Label>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField HeaderText="العدد" SortExpression="Quantity">

<EditItemTemplate>

<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Quantity") %>' Width="45px"></asp:TextBox>

<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="عليك إدخال رقم" Text="عليك إدخال رقم" ControlToValidate="TextBox1" Type="Integer" MaximumValue="100" MinimumValue="1">

</asp:RangeValidator>

</EditItemTemplate>

<ItemTemplate>

<asp:Label ID="Label2" runat="server" Text='<%# Bind("Quantity") %>'></asp:Label>

</ItemTemplate>

</asp:TemplateField>

</Columns>

<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />

<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />

<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />

<AlternatingRowStyle BackColor="White" />

</asp:GridView>

اما الكود التالي فهو للديتيلز فيو واسمها DetailsView2

<asp:DetailsView ID="DetailsView2" runat="server" AutoGenerateRows="False" CellPadding="4"

DataKeyNames="PrintersID" DataSourceID="SqlDataSource3" DefaultMode="Insert"

Font-Size="12pt" ForeColor="#333333" GridLines="None" Height="115px" meta:resourcekey="DetailsView1Resource1"

Width="177px" Font-Bold="True">

<FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />

<CommandRowStyle BackColor="#FFFFC0" Font-Bold="True" />

<RowStyle BackColor="#FFFBD6" ForeColor="#333333" />

<FieldHeaderStyle BackColor="#FFFF99" Font-Bold="True" />

<PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />

<Fields>

<asp:TemplateField HeaderText="PrintersID" InsertVisible="False" meta:resourcekey="TemplateFieldResource2"

SortExpression="PrintersID">

<EditItemTemplate>

 

</EditItemTemplate>

<ItemTemplate>

 

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField HeaderText="ID" meta:resourcekey="TemplateFieldResource3" SortExpression="ID"

Visible="False">

<EditItemTemplate>

 

</EditItemTemplate>

<InsertItemTemplate>

 

</InsertItemTemplate>

<ItemTemplate>

 

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField HeaderText="نوع الطابعة" meta:resourcekey="TemplateFieldResource4"

SortExpression="PrinterType">

<EditItemTemplate>

 

</EditItemTemplate>

<InsertItemTemplate>

<asp:DropDownList ID="DropDownList3" runat="server" meta:resourcekey="DropDownList3Resource1"

SelectedValue='<%# Bind("PrinterType") %>' Width="77px">

<asp:ListItem meta:resourcekey="ListItemResource1" Selected="True">HP 1100</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource2">HP 1200</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource3">HP 2200</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource4">HP 2300</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource5">Samsung</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource6">Brother</asp:ListItem>

<asp:ListItem meta:resourcekey="ListItemResource7">IBM</asp:ListItem>

</asp:DropDownList>

</InsertItemTemplate>

<ItemTemplate>

<asp:Label ID="Label1" runat="server" meta:resourcekey="Label1Resource2" Text='<%# Bind("PrinterType") %>'></asp:Label>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField HeaderText="العدد" meta:resourcekey="TemplateFieldResource5" SortExpression="Quantity">

<EditItemTemplate>

 

</EditItemTemplate>

<InsertItemTemplate>

 <asp:TextBox ID="TextBox1" runat="server" meta:resourcekey="TextBox1Resource2" Text='<%# Bind("Quantity") %>'

Width="39px"></asp:TextBox>

<br />

<asp:RangeValidator ID="RangeValidator1" runat="server" ErrorMessage="عليك إدخال رقم" Text="عليك إدخال رقم" ControlToValidate="TextBox1" Type="Integer" MaximumValue="100" MinimumValue="1">

</asp:RangeValidator>

</InsertItemTemplate>

<ItemTemplate>

<asp:Label ID="Label2" runat="server" meta:resourcekey="Label2Resource1" Text='<%# Bind("Quantity") %>'></asp:Label>

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField meta:resourcekey="TemplateFieldResource6" ShowHeader="False">

<InsertItemTemplate>

<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Insert" meta:resourcekey="LinkButton1Resource3"

Text="إضافة"></asp:LinkButton> 

</InsertItemTemplate>

<ItemTemplate>

 

</ItemTemplate>

</asp:TemplateField>

</Fields>

<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />

<AlternatingRowStyle BackColor="White" />

</asp:DetailsView>

فما رأيكم دام فضلكم

تم تعديل هذه المشاركة بواسطة هوّاش في 21 يوليو 2009 في 12:44

#7

يا أخ System Down أنا لو عندي كود في الصفحة ما بخلت عليك وكان عرضته اصلا انا بحاجة للجواب جدا لكن الأداتين مربوطتين مع SqlConnection بدون كود

أرجو أن تكون فهمت قصدي

#8
هوّاش كتب:

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

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

وعندي تحتها على طول ديتيلز فيو تقوم بالإضافة يعني بالعربي ما فيش كود بالبيج لود وحتى بالصفحه كلها

السؤال لما اضيف سجل جديد وبعديها اعمل ريفرش للصفحه يضيف السجل مرة تانية يعني كيف أعمل postback

#9

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

ضع كلا من grid , details فى update panel

ولا تنسى وضع script manager فى اعلى الصفحه

أُحبُّ الصَّالِحِينَ وَلسْتُ مِنْهُمْ ××× لَعَلِّي أنْ أنَالَ بهمْ شَفَاعَهْ

وَأكْرَهُ مَنْ تِجَارَتُهُ المَعَاصِي ××× وَلَوْ كُنَّا سَواءً في البضَاعهْ

#10

شكرا يا أخ deepfreeze على اهتمامك هل أنت متأكد من كلامك فأنا استخدم VisualStudio 2005 وهو لا يدعم الـ UpdatePanel ولا Script Manager فهي مدعمه مع VisualStudio 2008

#11

يمكن إضافة دعم مكتبات الـAjax إلى Visual Studio 2005.

اتبع هذه الخطوات:

http://www.asp.net/Ajax/Documentation/Live...ASPNETAJAX.aspx

#12

مشكور يا أخ System Down

سأجرب إن شاء الله وأردلك خبر

#13

خلاص أنا وجدت الحل

والحل هو أنك تكتب الكود التالي:

protected void detailsview1_iteminserted(object sender, detailsviewinsertedeventargs e)
{
response.redirect("terminals.aspx");
}

أي أنك تطلب من نفس الصفحه أن تتحمل من جديد عند حدث iteminserted للأداة detailsview1

وبهذا عند عمل refresh لن يكون هناك مشكله لأن الصفحه محمله من جديد

أشكر كل من شاركوني البحث عن حل المشكله

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