[英]string expression for html tag value
我正在定義一個數據源(用於可排序的列表視圖)並且有一個小問題。
與此類似的代碼:
<asp:SqlDataSource ID="myDataSource" runat="server"
SelectCommand="SELECT [aField], [bField] FROM Suggestions WHERE stype = 'X'"
ConnectionString="<%$ ConnectionStrings:dbConnectionString %>" >
</asp:SqlDataSource>
但真正的選擇字符串要復雜得多,我想做這樣的事情:
<asp:SqlDataSource ID="myDataSource" runat="server"
SelectCommand="SELECT [aField], [bField] " +
"FROM Suggestions WHERE stype = 'X'"
ConnectionString="<%$ ConnectionStrings:dbConnectionString %>" >
</asp:SqlDataSource>
我搜索了術語的不同變體:concatentation catenation string tag html asp.net
但我找不到任何關於它的東西,雖然看起來它需要字符串文字而不是字符串表達式。 所以我最終將這整個復雜的函數定義為數據庫中的一個函數,但是現在我想嘗試類似的東西:
<asp:SqlDataSource ID="myDataSource" runat="server"
SelectCommand="<% qry_str('X'); %>"
ConnectionString="<%$ ConnectionStrings:dbConnectionString %>" >
</asp:SqlDataSource>
其中qry_str()在代碼后面定義; 但是,該特定代碼不起作用:
代碼隱藏定義為:
protected string qry_str(string t)
{
string s =
"SELECT [aField], [bField] " +
"FROM Suggestions WHERE stype = '" + t + "'";
return "s";
}
我不認為背后的代碼是問題所在。 我認為這是asp.net和我稱之為的方式。 做我正在做的事情的正確方法是什么?
您可以在某個頁面事件處理程序中設置此屬性(更適合您的工作流程)。 例如,在Page_Load中:
protected void Page_Load(object sender, EventArgs e)
{
string t = "X"; // calculate t here
myDataSource.SelectCommand = "SELECT [aField], [bField] FROM Suggestions WHERE stype = " + t;
// other actions
}
您似乎試圖將ASPX視為C#。 如果添加了<%%>標記,則應該能夠使用C#連接語法:
<asp:SqlDataSource ID="myDataSource" runat="server"
SelectCommand='<% ="SELECT [aField], [bField] " +
" FROM suggestions " +
" WHERE sType='X' " %>'
ConnectionString="<%$ ConnectionStrings:dbConnectionString %>" >
</asp:SqlDataSource>
使用“引號內”引號內的引號可能會遇到麻煩 - 所以你可能最終不得不接受安德烈的回答。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.