2011-10-28 14 views
0

(ソート可能なリストビュー用の)データソースを定義していて、マイナースラグがあります。これに類似したhtmlタグ値の文字列式

コードは動作します:

<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> 

しかし、本当の選択文字列は、はるかに複雑であるが、私はこのような何かをしたいです条件: 連結表記文字列タグhtml asp.net

しかし、私はそれが何かを見つけることができませんが、文字列式ではなくリテラルを使用します。だから私は最終的には、データベース内の関数として、この全体の複雑な関数を定義するつもりですが、今の私のような何かを試してみたい:qry_strは()の背後にあるコードで定義されている

<asp:SqlDataSource ID="myDataSource" runat="server" 
    SelectCommand="<% qry_str('X'); %>" 
    ConnectionString="<%$ ConnectionStrings:dbConnectionString %>" > 
</asp:SqlDataSource> 

。しかし、その特定のコードは動作しません:私は背後にあるコードに問題があるとは思わない

protected string qry_str(string t) 
{ 
    string s = 
    "SELECT [aField], [bField] " + 
      "FROM Suggestions WHERE stype = '" + t + "'"; 
    return "s"; 
} 

:背後

コードとして定義されます。私はそれがasp.netだと私はそれを呼び出す方法だと思う。私がしようとしていることをする正しい方法は何ですか?

答えて

1

この属性は、一部のページイベントハンドラ(ワークフローに適したもの)で設定できます。たとえば、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 
} 
+0

これはそれです!ありがとう!2分で正解とマークします。 – elbillaf

1

ASPXをC#と同じように扱っているようです。あなたは<%の%>マーカーを追加した場合は、C#の連結構文を使用することができるはずです。

<asp:SqlDataSource ID="myDataSource" runat="server" 
        SelectCommand='<% ="SELECT [aField], [bField] " + 
             " FROM suggestions  " + 
             " WHERE sType='X'   " %>' 
        ConnectionString="<%$ ConnectionStrings:dbConnectionString %>" > 
</asp:SqlDataSource> 

あなたは引用符「内部の引用符 "内部引用符」を使用して、トラブルに遭遇するかもしれない - あなたはを有する終わるかもしれません

関連する問題