0

以下に示すように、いくつかの値を含む単純なドロップダウンリストがあります。

<select id="Opacity">
     <option value="50">50%</option>
     <option value="100">100%</option>
</select>

今、webmethod への ajax 呼び出しを使用して、選択した値を渡しています。

 $("#btnGetFiles").click(function () {
                ClearImages();
                $.ajax({
                    type: "POST",
                    url: "Default.aspx/GetFiles",
                    data: JSON.stringify({imgOpacity: $('#Opacity').val()}),
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                    }
                 });
 });

今私の webmethod では、ドロップダウン値を「50」として選択すると、値が「50」になります。

ここで、その不透明度を設定する必要がある以下のコードがあるという問題が発生します。

Dim imageOpacity As Single = 0.0F
imageOpacity = CInt(imgOpacity)
imageOpacity = imgOpacity / 100
imageOpacity = 1 - imgOpacity

Dim colorMatrixElements As Single()() = {New Single() {1.0F, 0.0F, 0.0F, 0.0F, 0.0F}, 
New Single() {0.0F, 1.0F, 0.0F, 0.0F, 0.0F}, 
New Single() {0.0F, 0.0F, 1.0F, 0.0F, 0.0F}, 
New Single() {0.0F, 0.0F, 0.0F, imageOpacity , 0.0F}, 
New Single() {0.0F, 0.0F, 0.0F, 0.0F, 1.0F}}

Dim wmColorMatrix As New ColorMatrix(colorMatrixElements)

ここで、 「%」を追加する必要があります。この方法でCInt(imgOpacity + "%")"imgOpacity"を実行しようとすると、文字列を "Double" 型に変換できないというエラーがスローされます。

では、どうすればこれを修正できますか?

4

2 に答える 2

1

値を 100 で割りませんか? それは何パーセントではないのですか?


変数名が非常に似ているため、これはタイプミスに気付かなかったケースだと思います。

このスニペットを参照してください

Dim imageOpacity As Single = 0.0F
imageOpacity = CInt(imgOpacity)
imageOpacity = imgOpacity / 100
imageOpacity = 1 - imgOpacity

imageOpacityここで、3 番目と 4 番目のステートメントの RHS は、 からではなく から値を取得する必要がありますimgOpacity。そのスニペットをこれに変更します。

Dim imageOpacity As Single = 1 - Convert.ToSingle(imgOpacity) / 100

その後、再度マトリックスに割り当てimageOpacityずに割り当ててくださいimgOpacity

于 2012-04-29T09:32:48.900 に答える
0

ついに答えが見つかりました。

コードを次のように変更しました。

 imageOpacity = Single.Parse(imgOpacity)
于 2012-04-29T12:13:47.857 に答える