=x= 🌵 NEWS 前台 View 页面後端功能制作。
📌 新闻内容页则比较单纯,由新闻标题、新闻主要内容区、新闻组图,这3个区块组成。
runat="server"
这样才抓得到。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
loadNews();
}
}
private void loadNews()
{
List<ImagePath> savePathList = new List<ImagePath>();
string guidStr = Request.QueryString["id"];
//如果没有网址传值就导回新闻列表页
if (String.IsNullOrEmpty(guidStr)) {
Response.Redirect("~/Tayanahtml/new_list.aspx");
}
//依取得 guid 连线资料库取得新闻资料
SqlConnection connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["TayanaYachtConnectionString"].ConnectionString);
string sql = "SELECT * FROM News WHERE guid = @guid";
SqlCommand command = new SqlCommand(sql, connection);
command.Parameters.AddWithValue("@guid", guidStr.Trim());
connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.Read()) {
//渲染新闻标题
newsTitle.InnerText = reader["headline"].ToString();
//渲染新闻主文
newsContent.Text = HttpUtility.HtmlDecode(reader["newsContentHtml"].ToString());
string loadJson = HttpUtility.HtmlDecode(reader["newsImageJson"].ToString());
//反序列化 JSON 格式
savePathList = JsonConvert.DeserializeObject<List<ImagePath>>(loadJson);
}
connection.Close();
//渲染新闻组图
if (savePathList?.Count > 0) {
string imgHtmlStr = "";
foreach (var item in savePathList) {
imgHtmlStr += $"<p><img alt='Image' src='upload/Images/{item.SavePath}' style='width: 700px;' /></p>";
}
groupImg.Text = HttpUtility.HtmlDecode(imgHtmlStr);
}
}
//用来接收组图 JSON 资料
public class ImagePath
{
public string SavePath { get; set; }
}
🌵 新闻标题用 .InnerText 设定 HTML 标签的文字内容。
🌵 组图的 HTML 需加入宽度样式,限制图片尺寸,否则有些图片会超出版面。
📢 今天内容比较单纯,可以当成复习之前的操作,比较有趣的部份是意外发现有 .InnerText 这个方法,使用起来很方便而且不会影响外观样式,感觉之後可以多多使用在不需送 HTML 标签的地方。
>>: DAY 19 制作 Nav Bar - dropdown content
那今天不说废话了直接开始 延续昨天的 我们已经建立出一个 main function 和 新增的 f...
-计算机架构 CPU 指令将值加载到寄存器中进行计算是很常见的。CPU 的寻址模式意味着 CPU ...
前言 嗨大家好,今天是铁人赛的第 27 天,也是本系列 Three.js 最後一篇罗,照惯例,最後一...
使用存到文字档的log取代print 解决相对网格里面,分母部位过小的问题 ...
今天介绍的State Pattern与昨天的Strategy Pattern非常的相似,不过它们...