PDA

View Full Version : مشکل باUserControl و UpdatePanel



mohsen_zelzela00
یک شنبه 15 آذر 1388, 10:56 صبح
با سلام خدمت اساتید محترم

من یک UserContorol طراحی کردم که کار insert به یکی از جداول database خودم رو انجام میده
حالا یک صفحه aspx طراحی کردم و یک updatepanel و یک button و یک panel در آن قرار دادم که panel من درون updatepanel است حالا میخوام با فشار دادن button اون usercontrolبیات درون panel من قرار بگیره تا اینجا مشکلی ندارم و کدام رو اینجوری نوشتم



<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>

<br />

<asp:Button ID="Button1" runat="server" Text="Button" />

</div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
</ContentTemplate>
<Triggers >
<asp:AsyncPostBackTrigger ControlID="button1" EventName="click" />
</Triggers>
</asp:UpdatePanel>
<asp:Button ID="Button2" runat="server" Text="Button" />
</form>



و کد vb.net خودم رو اینجوری نوشتم



Dim a As New Web.UI.UserControl
Panel1.Controls.Clear()
a = CType(Page.LoadControl("~/WebUserControl.ascx"), UserControl)
Panel1.Controls.Add(a)




و کد usercontrol خودم به صورت زیر است



<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="Button" />

حالا وقتی که من این page رو اجرا می کنم و usercontrol خودم رو load میکنم می خوام وقتی بر روی دکمه که عمل insert رو انجام می ده کلیک کنم یک postback انجام بشه ولی الان من هر کاری میکنم عمل insert رو بدون postback انجام میده


ممنون میشم اساتید محترم کمک کنند










/]

z_bluestar
یک شنبه 15 آذر 1388, 12:49 عصر
براي اين كار بايد يه Postback Trigger به Update Panel اضافه كنيد .
كدش در C#‎‎ به اين صورته

UserControl a = (UserControl)Page.LoadControl("~/WebUserControl.ascx");
Panel1.Controls.Clear();
Panel1.Controls.Add(a);
Button btnAdd = (Button)a.FindControl("Button1");

AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = btnAdd.ID;
UpdatePanel1.Triggers.Add(trigger);

mohsen_zelzela00
یک شنبه 15 آذر 1388, 13:12 عصر
ممنون دوست عزیز
حالا یه مشکل دیگه
من کد زیر رو برای insert نوشتم


Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click



Dim cn As New SqlConnection("Data Source=.;Initial Catalog=uni;Integrated Security=True")
Dim cmd As New SqlCommand("insert into stu values(@t1,@t2,@t3)", cn)
cmd.Parameters.AddWithValue("@t1", TextBox1.Text)
cmd.Parameters.AddWithValue("@t2", TextBox2.Text)
cmd.Parameters.AddWithValue("@t3", TextBox3.Text)
cmd.Connection = cn
'Try
cn.Open()
cmd.ExecuteNonQuery()

'Catch ex As Exception

'End Try

End Sub



ولی وقتی بر روی button کلیک می کنم هیچ رکوردی به table من اضافه نمی شه ولی وقتی که این کد رو مستقیم در فرم خودم می نویسم رکورد رو اضافه می کنه

ممنون میشم اگه راهنمایی کنید

z_bluestar
یک شنبه 15 آذر 1388, 13:32 عصر
كد رو Debug كنيد و مطمئن بشيد كه اين كدها اجرا مي شوند يا نه ؟؟
شايد Insert در DataBase انجام مي شه ولي در نمايش نياز به Binding داره ؟؟

mohsen_zelzela00
یک شنبه 15 آذر 1388, 13:51 عصر
شايد Insert در DataBase انجام مي شه ولي در نمايش نياز به Binding داره ؟؟

دوست عزیز من مستقیم database رو چک می کنم