ورود

View Full Version : بهم ریختن فرم بعد از جستجوی ajax



R_Rajaee_Rad
دوشنبه 04 آذر 1392, 16:32 عصر
سلام
طبق اموزشهای سایت یه جستجو با ای جکس ساختم که تقریبا درست شد و کار کرد.اما مشکلم با تگی هست که قرار آپدیت بشه

@using (Ajax.BeginForm("Index","Home",FormMethod.Post,new AjaxOptions{
HttpMethod = "POST",
InsertionMode = InsertionMode.InsertAfter,
UpdateTargetId = "articles"}))
{
بعد از جستجو صفحه بهم میریزه.این تگ رو دقیقا باید کجا قرار بدم(چون با foreach چندتا فیلد جدول رو پیمایش میکنم)

Cybersilent
سه شنبه 05 آذر 1392, 11:02 صبح
بعد از جستجو صفحه بهم میریزه.
کاش این جمله رو دقیقا توضیح می دادید! یعنی چی به هم میریزه؟
جای عناصر تو صفحه تغییر می کنه یا ...؟
کدی که قرار دادید که مشکل نداره ظاهرا !

R_Rajaee_Rad
سه شنبه 05 آذر 1392, 13:35 عصر
بله دوست عزیز...جای عناصر عوض میشه
عناصر سمت راست صفحه مثل کادر جستجو و لوگوی فید بنر سایت میان وسط صفحه
http://axgig.com/images/22577124797809529876_thumb.png (http://axgig.com/viewer.php?file=22577124797809529876.jpg)

Cybersilent
چهارشنبه 06 آذر 1392, 10:03 صبح
فکر می کنم مشکل از استایل قسمتی باشه که به صورت ajax به صفحه اضافه میشه.
معمولا حین کار به float این مشکلات بوجود میاد.

R_Rajaee_Rad
چهارشنبه 06 آذر 1392, 20:42 عصر
ممنونم...حالا این مشکل رو یه جوری باهاش کنار میام اما مشکل اصلی من با اجاکس اینه که چطوری میشه بعد از ارسال داده ها به صورت آجاکسی به کنترلر و ذخیره در بانک ---صفحه ویو رو دوباره آجاکسی رفرش کرد؟





public ActionResult Create(ArticleViewModel com)
{
int articleId = Convert.ToInt32(TempData["ArticleId"].ToString());
try
{


var ins = new Comment();
ins.Description = com.Description;
ins.ArticleId = articleId;
ins.DateSend = Shamsi();
ins.TimeSend = DateTime.Now.ToString("HH:mm:ss");
ins.UserId = WebSecurity.CurrentUserId;
ins.CountLikes = 0;
ins.CountDislike = 0;
bank.Comments.InsertOnSubmit(ins);
bank.SubmitChanges();
return RedirectToAction("Details", "Article", new { id = articleId });

}

این کد منه...مشکلم اینه که نمیدونم چی رو باید برگردونم که تمام صفحه لود نشه

ممنونم

Cybersilent
پنج شنبه 07 آذر 1392, 21:57 عصر
یک مثال...
کدهای Index :
<script>
function searchComplete() {
//alert("OnComplete Fired");
}
</script>
<div>
@using (Ajax.BeginForm(actionName: "SearchEmployeeInfo",
controllerName: "Home",
ajaxOptions: new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "EmployeeInfo",
LoadingElementId = "Loading",
OnComplete = "searchComplete"
}))
{
<span>نام کارمند:</span>
@Html.TextBox("data")
<input type="submit" value="جستجو" />
}
</div>
<div id="Loading">
<img src="~/Content/images/loading.gif" alt="" />
در حال جستجوی اطلاعات کارمندان...
</div>
<div id="EmployeeInfo">
<a id="#searchResult"></a>
</div>

کدهای _SearchEmployeeInfo.cshtml (یک Partial View هست):


@model IEnumerable<MvcApplicationAjaxSearch.Models.Employee>

<table id="EmployeeInfo">
<tr>
<th>
نام کارمند
</th>
</tr>

@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
</tr>
}

</table>

و کدهای Controller:
public ActionResult SearchEmployeeInfo(string data)
{
if (String.IsNullOrEmpty(data))
return Content("نتیجه ای یافت نشد");

var employeeList = EmployeeDataSource.CreateEmployees();
var resultList = employeeList.Where(x => x.Name.Contains(data)).ToList();

if (!resultList.Any())
return Content("نتیجه ای یافت نشد");

System.Threading.Thread.Sleep(2000);

return PartialView("_SearchEmployeeInfo", resultList);
}