3

私は、Microsoft .NET Framework 4 を使用した Web アプリケーション開発について学んでいます。この本を読んでいる間、私はこのことを学びながらコーディングしているサイド プロジェクトを仕事で持っています。

ユーザー名に基づいてデータベースにクエリを実行し、データベースの行数に基づいてカスタム コントロールを動的に作成する、非常にシンプルなアプリケーションです。

カスタム コントロールは、画像とラベルにすぎません。ただし、いくつかのメンバー変数 (reportName および filePath) があります。

public partial class ReportIcon : System.Web.UI.UserControl
{
    public string reportName { get; set; }
    public string filePath { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        ReportNameLabel.Text = this.reportName;
    }
}

これらの動的に作成されたアイコンは問題なく作成され、メンバー変数はデータベースの値に従って設定されます。

jQuery の onClick イベントを使用して filePath 値を取得しようとしています。その情報にたどり着けないようです。現在、アイコンが実際にクリックされたことを警告しています。

$('.report-icons').click(
    function () {
        $(this).siblings().removeClass("selected");
        $(this).addClass("selected");
        alert("Get PDF File");
    }

);

jQueryを使用してカスタムコントロールでこの情報に到達するために、誰かが私を正しい方向に向けることができますか?

ありがとう

4

3 に答える 3

1

ファイルパスをUIコントロールに書き出す必要があります。これは、JQueryによってアクセスできます。

マークアップ

<asp:Label runat=server ID="lblFilePath" />

コードビハインド

lblFilePath.Text = filePath

JQuery

alert($(#<%=lblFilePath.ClientID%>).text());

非表示フィールドを使用するか、コントロールのデータ属性を活用します。原理は同じだろう

于 2012-05-08T15:32:48.960 に答える
1

ユーザーにファイル パスを見せたくないのだと思います。Crab Bucket の方法は確実に機能しますが、ラベル コントロールの代わりに隠しコントロールを使用することをお勧めします。

HTML

< asp:Hidden runat="server" id="filePath"/>

コードビハインド

filePath.value = myReportPath

JQuery

alert($("#<%=filePath.ClientID %>").val());

于 2012-05-08T15:42:48.090 に答える
0

生成された HTML 要素に data-filepath 属性を追加すると、jquery を使用して読み取ることができます。

于 2012-05-08T15:32:05.990 に答える