Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 比较两个不同gridview的选定值_Asp.net_Vb.net_Gridview - Fatal编程技术网

Asp.net 比较两个不同gridview的选定值

Asp.net 比较两个不同gridview的选定值,asp.net,vb.net,gridview,Asp.net,Vb.net,Gridview,您好,我有三个启用了“选择行”的网格视图。用户将从每个网格视图中选择一个项目,然后在选定的索引更改上,将值与其他两个网格视图进行比较,以查看它们是否相等。在调试时,我可以看到它们是相同的,所以我不确定为什么if语句总是作为true传递。它是否可能比较索引?谢谢你的帮助 If gvCustomer.SelectedValue IsNot gvSiteAddress.SelectedValue Then dataSourceGVCust.SelectCommand = Con

您好,我有三个启用了“选择行”的网格视图。用户将从每个网格视图中选择一个项目,然后在选定的索引更改上,将值与其他两个网格视图进行比较,以查看它们是否相等。在调试时,我可以看到它们是相同的,所以我不确定为什么if语句总是作为true传递。它是否可能比较索引?谢谢你的帮助

If gvCustomer.SelectedValue IsNot gvSiteAddress.SelectedValue Then
            dataSourceGVCust.SelectCommand = ConfigurationManager.AppSettings("SelectCustomer") & " WHERE CUST_NO LIKE '%" & gvSiteAddress.SelectedValue.ToString & "%' ORDER BY CUST_NAME"
        End If
If gvJobNumber.SelectedValue IsNot gvSiteAddress.SelectedValue Then
     dataSourceGVJobNumber.SelectCommand = ConfigurationManager.AppSettings("SelectJobNumber") & " WHERE CUST_NO LIKE '%" & gvSiteAddress.SelectedValue.ToString & "%' ORDER BY JOB_NO"
End If
你误用了IsNot操作符。看

引用不等于。也就是说,两个对象在物理上指向同一个对象的实例,而不仅仅是它们具有相同的值

改变不会发生,你应该重新开始行动

编辑:可能需要转换为正确的类型。例如,如果您的值是数字ID,则类似于:

If CType(gvJobNumber.SelectedValue, Integer) <> CType(gvSiteAddress.SelectedValue, Integer) Then

或者如果是字符串,则替换上面看到整数的字符串。

当我将运算符更改为时,我得到选项strict on,不允许运算符使用object类型的操作数。使用“Is”运算符测试对象标识。这就是为什么我选择了isnot,我可以关闭它,但打开它不是最好的做法吗?我明白了。SelectedValue是一个对象,不是字符串或整数,因此您可以灵活设置该值。您选择的基本类型是什么?这是什么?数字标识?请参阅上面对我的答案的编辑。