我正嘗試使用asp.net和C#和bootstrap創建網站內容管理。我已經使用asp.net和C#以及像gridview這樣的服務器控件完成了這個工作,但是我想創建一個像wordpress CMS一樣的版本。
我會描述我的項目來清除我的目的。
首先填寫數據庫中的DataTable
。此Datatable
具有messageId int
,Subject varchar
,name varchar
,email varchar
,message text
,isRead bit
,等等columns.isRead列是指定位類型,該消息被讀或沒有。 我用下面的方法填充我的數據表:在asp.net中使用C#從客戶端發送值到服務器端
DataTable dt = cls.Fill_In_DataTable("MessageFetchMessage");
然後我用另一種方法,動態生成HTML文本:在Page_Load中
protected void Page_Load(object sender, EventArgs e)
{
messeges = cls.fetchMessages();
}
messege字符串變量,將追加生成html代碼爲aspx頁面:
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title"><i class="fa fa-clock-o fa-fw"></i> Last messages From users</h3>
</div>
<div class="panel-body">
<div class="list-group">
<%=messeges %>
</div>
<div class="text-right">
<a href="#">View All messages <i class="fa fa-arrow-circle-right"></i></a>
</div>
</div>
</div>
</div>
消息內容具有fetchMessages()
方法,這些文字:
public string fetchMessages()
{
string post = ""; string readed = "";
DataTable dt = cls.Fill_In_DataTable("MessageFetchMessage");
if (dt.Rows.Count>0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
DateTime dtTemp = DateTime.Parse(dt.Rows[i]["messageDate"].ToString());
if (dt.Rows[i]["isRead"].ToString() == "True")
readed = "MessageReaded";
else
readed = "MessageNew";
post += "<div class='modal fade' id='myModal" + dt.Rows[i]["messageId"].ToString() + "' tabindex='-1' role='dialog' aria-labelledby='myModalLabel'>"
+ "<div class='modal-dialog' role='document'>"
+ "<div class='modal-content'>"
+ "<div class='modal-header'><button type='button' class='close' data-dismiss='modal' aria-label='Close'><span aria-hidden='true'>×</span></button><h4 class='modal-title' id='myModalLabel'><span style='font-weight:bold'>Subject</span> : " + dt.Rows[i]["subject"].ToString() + "</h4></div>"
+ "<div class='modal-header'><p><span style='font-weight:bold'>Date</span> : " + dtTemp.ToString("yyyy/MM/dd") + "</p>"
+ "<p><span style='font-weight:bold'>Time</span> : " + dt.Rows[i]["messageTime"].ToString() + "</p>"
+ "<p><span style='font-weight:bold'>Email</span> : " + dt.Rows[i]["email"].ToString() + "</p></div>"
+ "<div class='modal-body'>" + dt.Rows[i]["message"].ToString() + "</div>"
+ "<div class='modal-footer'><button type='button' class='btn btn-default' data-dismiss='modal'>Close</button><input type='submit' ID='btn" + dt.Rows[i]["messageId"].ToString() + "' class='btn btn-danger' onserverclick='btn_Click' value='Delete message' /></div>"
+ "</div></div></div>";
string narrow = Special.TimeToNarrow(dt.Rows[i]["messageDate"].ToString(), dt.Rows[i]["messageTime"].ToString());
post += "<a data-toggle='modal' data-target='#myModal" + dt.Rows[i]["messageId"].ToString() + "' href='#' class='list-group-item " + readed + "'><span class='badge'>" + narrow + "</span><i class='fa fa-fw fa-comment'></i> <span>"
+ dt.Rows[i]["name"].ToString() + "</span> : <span>" + dt.Rows[i]["subject"].ToString() + "</span></a>";
}
}
return post;
}
最後我想補充服務器代碼背後btn_Click事件:
protected void btn_Click(object sender, EventArgs e)
{
string id = (sender as Control).ClientID;
//Then give Id to database class for CRUD Intractions
}
但btn_Click從來沒有從客戶端叫。我在2天內搜索了類似的問題,但沒有得到答案。請幫我:)
這裏我將把我的網站截屏:
您需要WebMethod。你知道如何使用這些嗎? – snowYetis
不,我不是:(對不起,你能解釋一下嗎? –
亞沒問題,我會發表一個答案。 – snowYetis