Asp.net 比较两个不同gridview的选定值
您好,我有三个启用了“选择行”的网格视图。用户将从每个网格视图中选择一个项目,然后在选定的索引更改上,将值与其他两个网格视图进行比较,以查看它们是否相等。在调试时,我可以看到它们是相同的,所以我不确定为什么if语句总是作为true传递。它是否可能比较索引?谢谢你的帮助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 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是一个对象,不是字符串或整数,因此您可以灵活设置该值。您选择的基本类型是什么?这是什么?数字标识?请参阅上面对我的答案的编辑。