با سلام
من یه صفحه ای طراحی کردم که در اون صفحه: عنوان خبر ومتن خبر رو میخوام چاپ کنم ولی با این تفاوت که همه توضیحات اون متن چاپ نشه و فقط قسمتی از متن مثلا 200 کاراکترش چاپ بشه! و توضیحات کاملش رو در صفحه دیگه که با net routing مشخص کردم چاپ بشه. من دنبال اون کدی هستم که اون 200 کارکتر اولش رو چاپ کنه! دوستان اگه میدونن کدش رو قرار بدن..ممنون
مقاله زیر رو ببینید
برای 200 کارکتر هم میتونید از SubString استفاده کنید
string Text="Text"; string ShortText=Text.SunbString(0,200);
مهندس یه همچین کدی دارم برای نمایش خبر هام خب حالا میخوام 200 کارکتر اول توضیحات خبرم که فیلدشNote هستش رو بدست بیارم و نمایش بدم
کدش رو چطور تغییر بدم ؟ به کدهام نگاه کن..
e.Result = (from n in db.tbl_News orderby n.Date descending where n.GroupID == 4 select new { n.NewsID, n.NewsTitle, n.Note.Substring(0,200), n.Date, n.Image, n.tbl_User.FullName, n.tbl_SubGroup.SubGroupTitle, }).Take(10).ToList();
مهندس البته این خط از کدهام کار نمیکنه و خطا داره .فقط اینجا رو میخوام درست کنی
n.Note.Substring(0,200),
میتونستم برای قسمت توضیحات خبر 2تا فیلد تعریف کنم ودر فیلد اول 200 تای اول رو چاپ کنم و در فیلد دوم بقیه توضیحات رو ولی بنظر من از نظر منطق کدنویسی خوب نیست! دوس دارم 200 کارکتر رو از یه فیلد بکشه بیرون و نمایش بده و کل مطلب رو در صفحه نمایش کل خبر هام نمایش بده. مهندس اگه میشه اون کدهام رو درست کنید.ممنون
شما اول باید از بانک واکشی کنید و سپس با یک حلقه اینکار رو بکنید
البته باید چک کنید طول رشته بیشتر از 200 باشه وگرنه ارور میده
مهندس من این قسمت از کار رو بلد نیستم متاسفانه!
اگه امکان داره شما این قسمت رو برام بنویسید..هزار بار ازتون ممنون میشم
var list = (from n in db.tbl_News orderby n.Date descending where n.GroupID == 4 select new { n.NewsID, n.NewsTitle, n.Note, n.Date, n.Image, n.tbl_User.FullName, n.tbl_SubGroup.SubGroupTitle, }).Take(10).ToList(); for(int i=0;i<list.Count();i++) { if(list[i].Note.Lenght>200) { list[i].Note=list[i].Note..Substring(0,200) } e.Result=list; }
list[i].Note = list[i].Note.Substring(0, 200); مهندس از این خط error میگیره !پیغام زیر رو نمایش میده هنگام Buildکردن پروژه! Readonly Property Can not be Used as an assignment target
list[i].Note ازین کد error میگیره
شاید اشتباه تایپی داره
هیچکدام قرمز نشده ؟
list[i].Note = list[i].Note.Substring(0, 200);
اشتباه تایپی هاشو درست کردم ولی باز زیرش خط قرمز داره!
list[i].Note
زیر این قسمت قرمز میشه
بهش ToString() اضافه کنید ببینید درست میشه
نه هیچ فرقی نکرد!
مهندس بالاخره نوشتم ولی نیازی به حلقه نبود! کد ها رو نگاه کن خیلی راحت بود !یکم تغییر دادم و جواب داد. کد رو میذارم که بقیه دوستان هم استفاده کنند.
e.Result = (from n in db.tbl_News orderby n.Date descending where n.GroupID == 4 select new { n.NewsID, n.NewsTitle, Note = n.Note.Substring(0,200), n.Date, n.Image, n.tbl_User.FullName, n.tbl_SubGroup.SubGroupTitle, }).Take(10).ToList();
<%#(Regex.Replace(DataBinder.Eval(Container.DataItem,"NewsText").ToString().Trim().Trim(), @"<(.|\n)+?>", "").Length>300)?Regex.Replace(DataBinder.Eval(Container.DataItem,"NewsText").ToString().Trim(), @"<(.|\n)+?>", "").Substring(0,300)+"...":Regex.Replace(DataBinder.Eval(Container.DataItem,"NewsText").ToString().Trim(), @"<(.|\n)+?>", "") %>
این هم جواب داد واسه اینکار! گذاشتم که استفاده کنید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)