我正在尝试使用代码隐藏文件中的C#为asp.page更改html <div>
标记中的DATA属性。
这是我的HTML代码
<div class="tile page-content" id="fullTextArticle"
data-ID=""
data-permission="" runat="server">
</div>
这是代码隐藏文件中的c#
private void DisplayFullTextArticle()
{
string contentID = "";
if (Context.Request.QueryString["contentID"] != null)//check for a value in the query string
{
contentID = Context.Request.QueryString["contentID"];
try
{
//define connection string
string connString = WebConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connString))//create connection object
{
SqlCommand cmd = new SqlCommand("spDisplayFullTextArticle", conn);
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
cmd.Parameters.Add("@ID", SqlDbType.Int).Value = Convert.ToInt32(contentID);
SqlDataReader myReader = cmd.ExecuteReader();
HtmlControl divDataID = FindControl(id: "fullTextArticle") as HtmlControl;
while (myReader.Read())
{
divDataID.Attributes["class"]= myReader["ID"].ToString();
}
myReader.Close();
//}//end using statement for SqlCommmand Object
}//end using statement for SQLConnection
}//end try block
catch (Exception ex)
{
} //end catch block
}//end if statement
}
某些上下文:我的方法从查询字符串中获取值,并将值传递给存储过程,该存储过程运行SELECT查询以从SQL数据库中提取全文内容。我使用断点进行一些调试,我可以看到查询字符串确实将值传递给过程,并且它成功运行查询。麻烦的是我的HtmlControl变量divDataID最终为null。因此未设置ID值,因此未在浏览器中设置<div data-ID>
属性。
有谁知道我做错了什么?如何从代码隐藏文件中设置data-ID属性?
答案 0 :(得分:0)
使用母版页时,查找控件比较棘手。你应该这样做:
var divDataID = Master.FindControl("ContentPlaceHolder").FindControl(id: "fullTextArticle") as HtmlControl;
其中"ContentPlaceHolder"
是母版页中的ContentPlaceHolder ID。