PDA

View Full Version : سوال: مشكل در استفاده از UpdatePanel



star_rh
جمعه 27 مرداد 1391, 00:08 صبح
سلام دوستان

يه مشكل.
تو يه UpdatePanel ، وقتي روي txtstDate , txtenDate كليك مي كنم Calender ظاهر مي شه ولي وقتي روي ويرايش GridView كليك مي كنم ديگه ظاهر نمي شه و از كار مي افته.

دوستان خواهشن كمك كنيد



اين كد جاوا اسكريپتش هست:

<script>
$(function () {
$("#txtstDate").datepicker({
showOn: "button",
buttonImage: "../images/calendar.gif",
buttonImageOnly: true
});
$("#txtenDate").datepicker({
showOn: "button",
buttonImage: "../images/calendar.gif",
buttonImageOnly: true
});

$("#txtstDate").datepicker("option", "dateFormat", "yy/mm/dd");
$("#txtenDate").datepicker("option", "dateFormat", "yy/mm/dd");
});
</script>


و كد UpdatePanel:


<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
<asp:UpdatePanel ID="panelCourses" runat="server">
<ContentTemplate>

<div class="mainForm">
<ul>
<li>
<fieldset>
<legend>ويرايش اطلاعات</legend>

<ul runat="server" id="editField">
<li>
<label for="txtCourseName">نام دوره:</label>
<asp:TextBox ID="txtCourseName" runat="server"></asp:TextBox>
</li>
<li class="mainForm">
<label for="txtstDate">زمان شروع:</label>
<asp:TextBox ID="txtstDate" runat="server"></asp:TextBox>
</li>
<li>
<label for="txtenDate">زمان پايان:</label>
<asp:TextBox ID="txtenDate" runat="server"></asp:TextBox>
</li>
<li>
<label for="txtTeacher">مربي:</label>
<asp:TextBox ID="txtTeacher" runat="server"></asp:TextBox>
</li>
<li>
<label for="txtPrice">هزينه:</label>
<asp:TextBox ID="txtPrice" runat="server"></asp:TextBox>
</li>
<li>
<label for="chkElmEn">فعال بودن:</label>
<asp:CheckBox ID="chkElmEn" runat="server" />
</li>
</ul>
<asp:LinkButton ID="btnAddCourse" runat="server" onclick="btnAddCourse_Click">افزودن</asp:LinkButton>
<asp:LinkButton ID="BtnApply" runat="server" Visible="False"
onclick="BtnApply_Click">اعمال تفييرات</asp:LinkButton>
</fieldset>
</li>
<li>
<fieldset>
<legend>اطلاعات موجود</legend>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="CourseId"
DataSourceID="SqlDataSource1" onrowdatabound="GridView1_RowDataBound"
onselectedindexchanged="GridView1_SelectedIndexChanged" Width="577px"
onrowcommand="GridView1_RowCommand"
EmptyDataText="داده اي موجود نمي باشد.">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnEdit" runat="server" CommandName="EditPress" CommandArgument='<%#Eval("CourseId") %>'>ويرايش</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnRemove" runat="server" CommandName="RemovePress" CommandArgument='<%#Eval("CourseId") %>'>حذف</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CourseId" HeaderText="شماره" ReadOnly="True"
SortExpression="CourseId" />
<asp:BoundField DataField="CourseName" HeaderText="نام دوره"
SortExpression="CourseName" />
<asp:BoundField DataField="CourseStartTime" HeaderText="زمان شروع"
SortExpression="CourseStartTime" />
<asp:BoundField DataField="CourseEndTime" HeaderText="زمان اتمام"
SortExpression="CourseEndTime" />
<asp:BoundField DataField="CourseTeacher" HeaderText="مربي"
SortExpression="CourseTeacher" />
<asp:BoundField DataField="CoursePrice" HeaderText="هزينه"
SortExpression="CoursePrice" />
<asp:TemplateField HeaderText="فعال">
<ItemTemplate>
<asp:CheckBox ID="chkEnable" runat="server" Enabled=false/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
SelectCommand="SELECT * FROM [LMS_Course] ORDER BY [CourseId], [CourseName]">
<InsertParameters>
<asp:Parameter Name="CourseId" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
</fieldset>
</li></ul>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnApply" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="btnAddCourse" EventName="Click" />
</Triggers>
</asp:UpdatePanel>

mehdi_gerami65
جمعه 27 مرداد 1391, 11:13 صبح
سلام دوستان

يه مشكل.
تو يه UpdatePanel ، وقتي روي txtstDate , txtenDate كليك مي كنم Calender ظاهر مي شه ولي وقتي روي ويرايش GridView كليك مي كنم ديگه ظاهر نمي شه و از كار مي افته.

دوستان خواهشن كمك كنيد



اين كد جاوا اسكريپتش هست:

<script>
$(function () {
$("#txtstDate").datepicker({
showOn: "button",
buttonImage: "../images/calendar.gif",
buttonImageOnly: true
});
$("#txtenDate").datepicker({
showOn: "button",
buttonImage: "../images/calendar.gif",
buttonImageOnly: true
});

$("#txtstDate").datepicker("option", "dateFormat", "yy/mm/dd");
$("#txtenDate").datepicker("option", "dateFormat", "yy/mm/dd");
});
</script>


و كد UpdatePanel:


<cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</cc1:ToolkitScriptManager>
<asp:UpdatePanel ID="panelCourses" runat="server">
<ContentTemplate>

<div class="mainForm">
<ul>
<li>
<fieldset>
<legend>ويرايش اطلاعات</legend>

<ul runat="server" id="editField">
<li>
<label for="txtCourseName">نام دوره:</label>
<asp:TextBox ID="txtCourseName" runat="server"></asp:TextBox>
</li>
<li class="mainForm">
<label for="txtstDate">زمان شروع:</label>
<asp:TextBox ID="txtstDate" runat="server"></asp:TextBox>
</li>
<li>
<label for="txtenDate">زمان پايان:</label>
<asp:TextBox ID="txtenDate" runat="server"></asp:TextBox>
</li>
<li>
<label for="txtTeacher">مربي:</label>
<asp:TextBox ID="txtTeacher" runat="server"></asp:TextBox>
</li>
<li>
<label for="txtPrice">هزينه:</label>
<asp:TextBox ID="txtPrice" runat="server"></asp:TextBox>
</li>
<li>
<label for="chkElmEn">فعال بودن:</label>
<asp:CheckBox ID="chkElmEn" runat="server" />
</li>
</ul>
<asp:LinkButton ID="btnAddCourse" runat="server" onclick="btnAddCourse_Click">افزودن</asp:LinkButton>
<asp:LinkButton ID="BtnApply" runat="server" Visible="False"
onclick="BtnApply_Click">اعمال تفييرات</asp:LinkButton>
</fieldset>
</li>
<li>
<fieldset>
<legend>اطلاعات موجود</legend>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True"
AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="CourseId"
DataSourceID="SqlDataSource1" onrowdatabound="GridView1_RowDataBound"
onselectedindexchanged="GridView1_SelectedIndexChanged" Width="577px"
onrowcommand="GridView1_RowCommand"
EmptyDataText="داده اي موجود نمي باشد.">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnEdit" runat="server" CommandName="EditPress" CommandArgument='<%#Eval("CourseId") %>'>ويرايش</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnRemove" runat="server" CommandName="RemovePress" CommandArgument='<%#Eval("CourseId") %>'>حذف</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="CourseId" HeaderText="شماره" ReadOnly="True"
SortExpression="CourseId" />
<asp:BoundField DataField="CourseName" HeaderText="نام دوره"
SortExpression="CourseName" />
<asp:BoundField DataField="CourseStartTime" HeaderText="زمان شروع"
SortExpression="CourseStartTime" />
<asp:BoundField DataField="CourseEndTime" HeaderText="زمان اتمام"
SortExpression="CourseEndTime" />
<asp:BoundField DataField="CourseTeacher" HeaderText="مربي"
SortExpression="CourseTeacher" />
<asp:BoundField DataField="CoursePrice" HeaderText="هزينه"
SortExpression="CoursePrice" />
<asp:TemplateField HeaderText="فعال">
<ItemTemplate>
<asp:CheckBox ID="chkEnable" runat="server" Enabled=false/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
SelectCommand="SELECT * FROM [LMS_Course] ORDER BY [CourseId], [CourseName]">
<InsertParameters>
<asp:Parameter Name="CourseId" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
</fieldset>
</li></ul>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="BtnApply" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="btnAddCourse" EventName="Click" />
</Triggers>
</asp:UpdatePanel>




ميدونيد چرا به تريقرهاي آبديت پنل خودتون نگاه كنيد چون شما به آبديت پنل خودتون گفتين كه فقط در تاريخ ها كاري انجتام بده نه در گريد ويو شما بايد براي اينكه هم گريد ويو هم در خواسته هاي شما باشه بايد در آبديت پنل خاصيت RowCommand هم اضافه كنيد
باز اگه مشكلي بود من در خدمت هستم

star_rh
جمعه 27 مرداد 1391, 12:47 عصر
ميدونيد چرا به تريقرهاي آبديت پنل خودتون نگاه كنيد چون شما به آبديت پنل خودتون گفتين كه فقط در تاريخ ها كاري انجتام بده نه در گريد ويو شما بايد براي اينكه هم گريد ويو هم در خواسته هاي شما باشه بايد در آبديت پنل خاصيت RowCommand هم اضافه كنيد
باز اگه مشكلي بود من در خدمت هستم


دوست عزيز با تشكر از اينكه وقت گذاشتيد
ولي منظور من اين نبود. يه كم توضيحات من بد بود.منظورم اينه كه
شما اون كد JavaScript رو مي بينيد براي ظاهر شدن يه تقويم هستش وقتي روي تكس باكس مورد نظر كليك مي كني يه تقويم ظاهر مي شه.
اين كد هنگام ReLoad كردن صفحه به درستي كار مي كنه ولي وقتي بر روي يه كنترل داخل UpdatePanel كليك مي كني حالا هر كنترلي، ديگه اون كد بالا كار نمي كنه و هر كاري هم مي كنم اون كد اسكريت ديگه روي المنتها اعمال نمي شه.

Fartaj
جمعه 27 مرداد 1391, 16:25 عصر
دوستان این قضیه گریبان ما رو هم گرفته اگه مثلا jqdatepicker رو داخل updatepanel بزارم بعد از یک بار ثیت اطلاعات باید صفحه رفرش بشه تا درست کار کنه اگه کسی نظری داره ممنون می شم

fakhravari
جمعه 27 مرداد 1391, 16:38 عصر
من با کامپوننت اقای هاشمی در ابدیت پنل هم مشکلی ندارم.
دقت کنید 2 نمونه کامپوننت داشت.

Fartaj
جمعه 27 مرداد 1391, 17:33 عصر
من هر دوتاشو گذاشتم اما به محض ثبت اطلاعات دیگه تقویم باز نمی شه تا دوباره صفحه رفرش بشه

star_rh
جمعه 27 مرداد 1391, 22:59 عصر
انگار همه با اين روش مشكل داشتند.
حالا كسي حلش نكرده؟