0

我有一个简单的下拉列表,如下所示,其中包含一些值:

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

现在我使用 ajax 调用将选定的值传递给我的 web 方法:

 $("#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) {
                    }
                 });
 });

现在在我的网络方法中,如果我将下拉值选择为“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)

现在我需要将"%"添加到"imgOpacity". 如果我尝试这样做CInt(imgOpacity + "%")它会抛出一个错误,指出字符串无法转换为类型 "Double"

那么我该如何纠正呢?

4

2 回答 2

1

为什么不直接将值除以 100?不是百分比是多少吗?


我认为这是一个没有注意到错字的情况,因为您的变量名称非常相似。

看到这个片段

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

这里第三和第四个语句的 RHS 必须取值 fromimageOpacity而不是 from 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 回答