PDA

View Full Version : سوال: اجرای یک کد اجاکس با رشته یا فایل



m.doostdar
جمعه 15 بهمن 1389, 22:55 عصر
سلام
من یک کد اجاکس دارم که میخوام به صورت داینامیک نوشته بشه و بعد هم اجرا بشه
اینم کدم هست که از سایت خودش گرفتم


<asp:Accordion ID="MyAccordion3" runat="Server" SelectedIndex="0" HeaderCssClass="accordionHeader"
HeaderSelectedCssClass="accordionHeaderSelected" ContentCssClass="accordionContent"
AutoSize="None" FadeTransitions="true" TransitionDuration="250" FramesPerSecond="40"
RequireOpenedPane="false" SuppressHeaderPostbacks="true">
<Panes>
<asp:AccordionPane HeaderCssClass="accordionHeader" runat="server" ContentCssClass="accordionContent">
<Header>
salam
</Header>
<Content>
matne sohbat
</Content>
</asp:AccordionPane>
</Panes>
</asp:Accordion>
.
وقتی کد رو توی صفحه کپی میکنم اجرا میشه و به خوبی کار میکنه و وقتی روی متن هدر کلیک میکنم متن زیرش باز و بسته میشه
مثل این
http://www.asp.net/ajax/ajaxcontroltoolkit/Samples/Accordion/Accordion.aspx
اما من میخوام متنم رو به صورت داینامیک ایجاد کنم یعنی این کد رو با رشته ها بخونم بعد هر چند تا ایتم که خواستم اضافه کنم و اجرا کنم و به سمت کلاینت بفرستم
برای این کار اومدم کدم رو گذاشتم توی یک فایل و اون قسمت <Panes> که داره بدنه رو میسازه رو با حلقه جایگزین کردم
اما موقع اجرا فقط متن ها رو بهم میده و حالت انیمیشن نداره و باز و بسته نمیشه!!!
اینم کدی که برای خوندن از فایل نوشتم


StreamReader sr=new StreamReader(Request.MapPath(".")+"/tt.txt");
string test = sr.ReadToEnd();
تغییر با حلقه...
testdiv.InnerHtml = test;
توی لیترال هم ریختم اما فایده نداشت
جالب اینجاست که توی usercontrol هم کپی میکنم باز هم جواب نمیده
چرا؟؟؟؟؟؟؟؟
اگه کسی بلده کمک کنه 2 روز هست که گیر اینم :گریه:
کمککککککککککککککککک

m.doostdar
شنبه 16 بهمن 1389, 03:30 صبح
کسی که جواب نداد اما با این روش خودم حلش کردم


AjaxControlToolkit.AccordionPane pane;
string onvan;
for (int i = 0; i < dt.Rows.Count; i++)
{
onvan = dt.Rows[i]["onvan"].ToString() + " " + dt.Rows[i]["tarikh"].ToString().Substring(0, 10);
pane = new AjaxControlToolkit.AccordionPane();
pane.ID = "paneNews" + i.ToString();
pane.ID = "paneNews" + i.ToString();

pane.ContentContainer.Font.Size = FontUnit.Parse("11");
pane.ContentContainer.Font.Name = "arial";
pane.ContentContainer.ForeColor = System.Drawing.Color.DarkBlue;

pane.HeaderContainer.Font.Size = FontUnit.Large;
pane.HeaderContainer.ForeColor = System.Drawing.Color.Blue;
pane.HeaderContainer.BackColor = System.Drawing.Color.DarkKhaki;
pane.HeaderContainer.Controls.Add(new LiteralControl(onvan));
pane.ContentContainer.Controls.Add(new LiteralControl(dt.Rows[i]["matn"].ToString()));
MyAccordionsNews1.Panes.Add(pane);
}


ولی همچنان نمیدونم چرا روش اول جواب نداد
اخه هیچ دلیل قانع کننده ای نداره!!!
اگر کسی میدونه بگه
ممنون:لبخندساده:

m.doostdar
شنبه 16 بهمن 1389, 16:52 عصر
کسی نیست بگه چرا روش اول کار نمیکنه و راه درستش چیه؟؟؟