PDA

View Full Version : سوال: مشکل در کار با Repeater



ehsan#baharangiz
شنبه 13 مهر 1392, 20:38 عصر
سلام دوستان من یه کد متن روان دارم منظور از متن روان اینه که مثلا خبر رو به صورت تایپی نمایش میده که خوب کار میکنه و مشکلی نداره ولی وقتی به بانک اطلاعاتی متصلش میکنم مشکل داره کدهارو میذارم و میگم ارورش کجاس
این کد مربوط به صفه html هست که من مقدار فیلد تیتررو از بانک گرفتم و به title لیبل اختصاص دادم و آی دی این لیبلو تو کد جاوا فراخوانی میکنم


<div dir="rtl" class="title">
<asp:SqlDataSource ID="SqlDataSource6" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT top(3) * FROM [title] ORDER BY [id] DESC "></asp:SqlDataSource>

<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource6">
<ItemTemplate>
<label id="t1" title='<%# Eval("titr") %>' ></label>

</ItemTemplate>
</asp:Repeater>

<a style=" float:right; margin-right:0px; margin-top:10px;" id="tickerAnchor" href="http://defult.aspx" target="_blank"
class="MainHrefIframeTitle"><span class="tickls">&nbsp;</span>مقاله ISI دانشجوی واحد علوم و تحقیقات در پایگاه اطلاعاتی ناس-</a>

</div>


کد جاوا



<script language="JavaScript" type="text/javascript">

// Ticker startup
function startTicker() {
// Define run time values
theCurrentStory = -1;
theCurrentLength = 0;
// Locate base objects
if (document.getElementById) {
theAnchorObject = document.getElementById("tickerAnchor");
runTheTicker();
}
else {
document.write("<style>.ticki{display:none;}.ticko{border:0px; padding:0px;}</style>");
return true;
}
}
// Ticker main run loop
function runTheTicker() {
var myTimeout;
// Go for the next story data block
if (theCurrentLength == 0) {
theCurrentStory++;
theCurrentStory = theCurrentStory % theItemCount;
theStorySummary = theSummaries[theCurrentStory].replace(/"/g, '"');
theTargetLink = theSiteLinks[theCurrentStory];
theAnchorObject.href = theTargetLink;
thePrefix = "<span class=\"tickls\">" + theLeadString + "</span>";
}
// Stuff the current ticker text into the anchor
theAnchorObject.innerHTML = thePrefix +
theStorySummary.substring(0, theCurrentLength) + whatWidget();
// Modify the length for the substring and define the timer
if (theCurrentLength != theStorySummary.length) {
theCurrentLength++;
myTimeout = theCharacterTimeout;
}
else {
theCurrentLength = 0;
myTimeout = theStoryTimeout;
}
// Call up the next cycle of the ticker
setTimeout("runTheTicker()", myTimeout);

}
// Widget generator
function whatWidget() {
if (theCurrentLength == theStorySummary.length) {
return theWidgetNone;
}

if ((theCurrentLength % 2) == 1) {
return theWidgetOne;
}
else {
return theWidgetTwo;
}
}

</script><script language="JavaScript" type="text/javascript">
<!--

var theCharacterTimeout = 150;
var theStoryTimeout = 5000;
var theWidgetOne = "_";
var theWidgetTwo = "-";
var theWidgetNone = "";
var theLeadString = "";

var theSummaries = new Array();
var theSiteLinks = new Array();

var t1 = document.getElementById("t1");




var theItemCount = 5;

theSummaries[0] = t1.title;

theSiteLinks[0] = "defult.aspx";


startTicker();

</script>

حالا یی که ارور میده اینه:


theStorySummary = theSummaries[theCurrentStory].replace(/"/g, '"');

farhud
یک شنبه 14 مهر 1392, 09:07 صبح
من کدهای جاوا را نگاه نکردم. ولی در مورد کدهای asp یک نکته هست. شما چطوری به آی دی لیبل درون repeater با کدهای جاوا دسترسی دارید؟ منظورم اینه که چطوری لیبل را به کدهای جاوا می‌شناسانید؟

همانطور که می‌دانید آی دی کنترل‌های درون repeater شماره می‌گیرند. یعنی آی دی لیبل ها چیری میشه مثل t1_0 و t1_1 و ...
نکته دیگه این که اگر این صفحه شما از یک مسترپیچ نیز ارث بری کرده باشه، آی دی ContentPalseHolder نیز به آی دی لیبل اضافه می شه.

یعنی در عمل آی دی لیبل شما حتما t1 نخواهد بود.