=x= 🌵 COMPANY - Certificat 前台页面後端功能制作。
📌 Certificat 页面内容分为 : 文字区、直式并排图片区、横式并排图片区。
<head>
及 <body>
内的内容分别复制到 .aspx 档案中。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack) {
loadContentText();
loadContentImgV();
loadContentImgH();
}
}
private void loadContentText()
{
//从资料库取内文资料
SqlConnection connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["TayanaYachtConnectionString"].ConnectionString);
string sqlCountry = "SELECT TOP 1 certificatContent FROM Company";
SqlCommand command = new SqlCommand(sqlCountry, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.Read()) {
//渲染画面
ContentText.Text = reader["certificatContent"].ToString();
}
connection.Close();
}
private void loadContentImgV()
{
//会重复添加内容所以用 StringBuilder 效能较好
StringBuilder ImgVHtml = new StringBuilder();
//用 List<T> 来存取 JSON 格式图片档名
List<ImagePathV> savePathListV = new List<ImagePathV>();
//从资料库取出直式图档档名
SqlConnection connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["TayanaYachtConnectionString"].ConnectionString);
string sqlLoad = "SELECT TOP 1 certificatVerticalImgJSON FROM Company";
SqlCommand command = new SqlCommand(sqlLoad, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.Read()) {
string loadJson = HttpUtility.HtmlDecode(reader["certificatVerticalImgJSON"].ToString());
//反序列化JSON格式
savePathListV = JsonConvert.DeserializeObject<List<ImagePathV>>(loadJson);
}
connection.Close();
// ?. 可用来判断不是 Null 才执行 Count
if (savePathListV?.Count > 0) {
foreach (var item in savePathListV) {
ImgVHtml.Append($"<li><p><img src='images/{item.SaveName}' alt='Tayana ' /></p></li>");
}
}
//渲染画面
ContentImgV.Text = ImgVHtml.ToString();
}
// JSON 资料 V 直式
public class ImagePathV
{
public string SaveName { get; set; }
}
private void loadContentImgH()
{
//会重复添加内容所以用 StringBuilder 效能较好
StringBuilder ImgHHtml = new StringBuilder();
//用 List<T> 来存取 JSON 格式图片档名
List<ImagePathH> savePathListH = new List<ImagePathH>();
//从资料库取出横式图档档名
SqlConnection connection = new SqlConnection(WebConfigurationManager.ConnectionStrings["TayanaYachtConnectionString"].ConnectionString);
string sqlLoad = "SELECT TOP 1 certificatHorizontalImgJSON FROM Company";
SqlCommand command = new SqlCommand(sqlLoad, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.Read()) {
string loadJson = HttpUtility.HtmlDecode(reader["certificatHorizontalImgJSON"].ToString());
//反序列化JSON格式
savePathListH = JsonConvert.DeserializeObject<List<ImagePathH>>(loadJson);
}
connection.Close();
// ?. 可用来判断不是 Null 才执行 Count
if (savePathListH?.Count > 0) {
foreach (var item in savePathListH) {
ImgHHtml.Append($"<li><p><img src='images/{item.SaveName}' alt='Tayana ' width='319px' height='234px' /></p></li>");
}
}
ContentImgH.Text = ImgHHtml.ToString();
}
// JSON 资料 H 直式
public class ImagePathH
{
public string SaveName { get; set; }
}
📢 昨天跟今天的 COMPANY 页面,因为有两个独立的内容,所以可以完整的练习到,需要拆解分类的画面,以及只要一口气送出全部的画面,认真觉得如果没有先练习这些,很难直接去挑战 NEWS 页跟 Yachts 页的内容,建议大家要真的搞懂 COMPANY 页包含後台实作的内容,对後续页面的制作来说非常实用。
>>: 从零开始的8-bit迷宫探险【Level 21】进击的主角!暴风雨来呐,你坐啊!
产品经理平常需要沟通的对象很多,而这些对象对专案的影响程度大小可能不尽相同,为了有效的擅用产品经理自...
今天用卤肉跟大家说声早安!! 薆悦酒店的早餐是有对外(非住客)开放的,但是要先预约。 今年的4月10...
一、前言 VSCode 是微软开发的文字编辑器,同时支援 Windows、Linux 和 mac...
为什麽会接触到 OpenTelemetry,算是因为 Log 的追踪关系,在後台上有两三个 Spri...
记得前面讲过,Storyboard 里面可以放置多个页面(ViewController),页面之间的...