private void DisplayImages(string imageFile)
{
Image pImage = new Image();
pImage.ImageUrl = imageFile;
this.Controls.Add(pImage);
}
上記は現在のコードですが、画像が表示されないため、URL 値を確認したいと考えています。URLをチェックしてURLを返すJavaScript関数があります。私がする必要があるのは、POST と呼ばれるものを使用して、javascript から返された URL を上の画像に割り当てることだけです。上記の関数の分離コードでこれを達成するにはどうすればよいですか?
提案してください。
更新 1:「this.Controls.Add(pImage);」を追加するのを忘れていました。上に追記しました。
更新 2: ページの onLoad 中にイメージ コントロール (コードに示すように) を作成しています。この URL は通常より長く、XML から取得されます。画像コントロールに割り当てる前に URL 値を出力しました。
何らかの理由で、画像がブラウザでレンダリングされません。たった今、その URL を別のブラウザーでレンダリングすると HTTP 403 になることがわかりました。その URL を作成して XML に保存した人は、Javascript を使用し、この URL を送信して POST を実行する必要があると教えてくれました。POST メソッドの後に画像 URL が割り当てられるように、以下のコードで JavaScript を実行する方法を知る必要があります。これが明確になることを願っています。
更新 3 : 以下は ASPX ページの Javascript です。
<script type="text/javascript">
// Open URL in new window with a a post instead of the get
function posturl(url) {
alert("I am here");
var qsBegin = url.indexOf("?");
var qsPattern = new RegExp("[?&]([^=]*)=([^&]*)", "ig");
var match = qsPattern.exec(url);
var params = new Array();
while (match != null) {
// matched text: match[0]
// match start: match.index
// capturing group n: match[n]
var matchID = match[1];
if ( matchID.charAt(0) == "&" ) {
matchID = matchID.substr(1);
}
if ( params[match[1]] != null && !(params[match[1]] instanceof Array) ) {
var subArray = new Array();
subArray.push(params[match[1]]);
subArray.push(unescape(match[2]));
params[match[1]] = subArray;
} else if ( params[match[1]] != null && params[match[1]] instanceof Array ) {
params[match[1]].push(unescape(match[2]));
} else {
params[match[1]]=unescape(match[2]);
}
match = qsPattern.exec(url);
}
var myForm = document.createElement("form");
//myForm.setAttribute("target", "_blank");
myForm.method="post" ;
myForm.action = url.substring(0,qsBegin) ;
for (var k in params) {
var myInput;
// Check for params with the same name.
if ( params[k] instanceof Array ) {
for ( var i=0; i<params[k].length; i++ ) {
myInput = createFormInput(k, params[k][i]);
myForm.appendChild(myInput) ;
}
} else {
myInput = createFormInput(k, params[k]);
myForm.appendChild(myInput);
}
}
document.body.appendChild(myForm) ;
myForm.submit() ;
document.body.removeChild(myForm) ;
//return "did you get what you wanted";
}
</script>