我有一个简单的下拉列表,如下所示,其中包含一些值:
<select id="Opacity">
<option value="50">50%</option>
<option value="100">100%</option>
</select>
现在我使用ajax调用将所选值传递给我的webmethod:
$("#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”类型。
那我该如何纠正呢?
答案 0 :(得分:1)
为什么不把这个值除以100?是不是百分比是多少?
请参阅此代码段
Dim imageOpacity As Single = 0.0F
imageOpacity = CInt(imgOpacity)
imageOpacity = imgOpacity / 100
imageOpacity = 1 - imgOpacity
此处第三和第四个陈述的R.H.S必须取imageOpacity
而不是 的值。将该代码段更改为此。imgOpacity
Dim imageOpacity As Single = 1 - Convert.ToSingle(imgOpacity) / 100
之后请再次将imageOpacity
而非 分配给矩阵imgOpacity
答案 1 :(得分:0)
终于找到了答案。
我已将代码更改为:
imageOpacity = Single.Parse(imgOpacity)