با سلام دوستان من کد کپچا رو در پیج لود تولید می کنم و اونو در یک کنترل ایمیج نشون میدم برای عوض شدن این عکس ها باید صفحه رفرش بشه می خوام بدونم چطوری می تونم این عوض شدن عکس رو بدون رفرش صفحه انجام بدم یعنی یک باتن بزارم که فقط عکس رو عوض کنه
با سلام دوستان من کد کپچا رو در پیج لود تولید می کنم و اونو در یک کنترل ایمیج نشون میدم برای عوض شدن این عکس ها باید صفحه رفرش بشه می خوام بدونم چطوری می تونم این عوض شدن عکس رو بدون رفرش صفحه انجام بدم یعنی یک باتن بزارم که فقط عکس رو عوض کنه
سلام
باید از ajax استفاده کنید و عکس رو reload کنید
از آپلود پنل استفاده کردم اما نشد یعنی عکس عوض نمیشه تصویر در پوشه مورد نظر عوض میشه اما در کنترل ایمیج نه
باید هر دفعه که عکس عوض میشه اسم اونو هم عوض کنید و دوباره با اسم جدید بخونیدش.
این کار واسه اینه که مرورگر عکس هارو کش میکنه و چون اسم عکس عوض نشده همون عکس قبلیو (که در کش هستش) نشون میده
دستوری برای رفرش کردن کنترل ایمیج نیست چون وقتی صفحه رفرش میشه تصویر هم عوض میشه
سلام من این کار رو با این کد انجام دادم که خودم ساختم دیگه نمیدونم مشکل داره یا نه.
از همون ابدیت پنل و اسکریپت منیجر استفاده کردم وبعد کد دکمه رفرشم اینجور نوشتم
protected void ImageButton1_Click1(object sender, ImageClickEventArgs e)
{
Random generator = new Random();
string s = "~/Capcha.aspx?" + generator.Next();
Image2.ImageUrl=s;
generator.Next();
}
کد صفحه ام هم اینجوره
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Image CssClass="capcha" ID="Image2" runat="server" ImageUrl="~/Capcha.aspx" />
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/Admin20p/image_admin/Refresh.png" OnClick="ImageButton1_Click1" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ImageButton1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
تنها با کد جاوا اسکریپت و خیلی ساده بدون نیاز به ایجکس و حتی پست بک شما میتونید آدرس هرعکسی رو عوض کنید.
یک نمونه براتون قرار میدم:
function ReCaptcha() { var date = new Date;
var src = '../home/getcaptcha?' + date.getTime().toString();
document.getElementById("Captcha").src = src;
}
تو رویداد کلیک سمت کلاینت هر باتن این کد رو قرار بدین عکس رو عوض میکنه فقط در خط اول بسته به ماژولی که کپچا رو تولید میکنه مسیر تغییر میکنه.
نحوه استفاده:
<img id="Captcha" onclick="ReCaptcha();" src="@Url.Action("getcaptcha", "home")" alt="Captcha" title="برای دگرگونی کد امنیتی بر روی آن کلیک کنید" />
<a href="javascript:ReCaptcha();" class="recode-link">دگرگونی کد امنیتی</a>