10

ユーザーがファイル名を確認してその名前のファイルを作成できるようにaspxを作成しています

URLは

/sites/usitp/_layouts/CreateWebPage.aspx?List=%7b74AB081E-59FB-45A5-876D-
                             284607DA03C6%7d&RootFolder=%3bText=%27SD_RMDS%27

パラメータ「Text」を解析してテキストボックスに表示するにはどうすればよいですか?

<div>
    <asp:TextBox id="Name" runat="server" />
</div>

aspxテキストボックスはこれです、私は試しました

<asp:TextBox id="Name" runat="server" text=<%$Request.QueryString['Text']%>></asp:TextBox>>

しかし、それは機能しませんでした

誰かが私を助けることができますか?

4

5 に答える 5

19

http get パラメータの値を取得するには:

string testParameter = Request.QueryString["Text"];

次に、テキストボックスのテキストを設定します

Name.Text = testParameter

また、悪意のあるコンテンツがページに挿入される可能性があるため、URL からコンテンツを直接取得しないことを強くお勧めします。ASP は、この問題からある程度の保護を提供しますが、それでも良い方法と考えられています。

于 2012-08-20T12:49:48.080 に答える
5

クエリ文字列からテキスト値を取得する場合は、次を使用する必要があります。

var text = (string)Request.QueryString["Text"];

次に、それを TextBox Name の Text プロパティにバインドできます。

 Name.Text = text;

更新: PageLoad イベントでのみサーバー コントロールの値を初期化できます。

于 2012-08-20T12:49:28.007 に答える
0

RootFolderとTextの間のURLに&がないようですので、これに変更してください-

/sites/usitp/_layouts/CreateWebPage.aspx?List=%7b74AB081E-59FB-45A5-876D-284607DA03C6%7d&amp;RootFolder=%3b&Text=%27SD_RMDS%27

あなたを拘束するという点では、あなたはほとんど正しいです、これはそれをするべきです-

<asp:TextBox id="Name" runat="server" text='<%#Request.QueryString["Text"]%>'></asp:TextBox>

ただし、これを今実行すると、このようにPageLoadでDataBind()を呼び出す必要があるため、機能しません。

protected void Page_Load(object sender, EventArgs e)
{
    DataBind();
}

これはあなたが望むように行うべきですが、おそらくこのようにPageLoadで直接これを行う方が簡単です-

Name.Text = Request.QueryString["Text"];
于 2012-08-20T13:20:55.283 に答える
0

コード ビハインド (SharePoint での一般的な制限) にアクセスできない場合は、JavaScript の「ハック」を使用して、テキスト ボックスに URL 値を入力できます。

これを実現するには、このコードを.aspxページの一番下のテキスト ボックスに配置します。

<script type="text/javascript">
    var strTextBoxId = "<%=Name.ClientID%>";
    var oTextBox = document.getElementById(strTextBoxId);
    if (oTextBox) {
        oTextBox.value = "<%=Request.QueryString["Text"].Replace("\"", "\\\"")%>";
    }
    else {
        //debug
        alert("element with ID '" + strTextBoxId + "' does not exist");
    }
</script>

これは良い方法ではないことに注意してください。ベスト プラクティス ソリューションを実行できない場合の回避策です。

于 2012-08-20T14:23:03.547 に答える
0

実際、そうでしょう

string value = Name.Text;
于 2012-08-20T12:45:27.297 に答える