我有一张表格:
我的ObjectDataSource如下所示:
<asp:ObjectDataSource ID="MyObjectDataSource" runat="server"
SelectMethod="MySelectMethod"
TypeName="MyTypeName">
<SelectParameters>
<asp:ControlParameter Name="MyRegularString"
Type="String"
ControlID="MyTextBox"
PropertyName="Text" />
<asp:Parameter Name="MySpecialString"
Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
第二个参数(“MySpecialString”)填充如下:
Protected Sub MyObjectDataSource_Selecting(...) Handles MyObjectDataSource.Selecting
Dim MySpecialString As String = "Key1=" & MyCheckBox1.Checked.ToString & ";" & _
"Key2=" & MyCheckBox2.Checked.ToString & ";" & _
"Key3=" & MyCheckBox3.Checked.ToString & ";"
e.InputParameters.Item("MySpecialString") = MySpecialString
End Sub
每当我更改MyTextBox的值并按MySubmitButton时,都会调用MyObjectDataSource的select方法,一切正常。
但是,如果我更改任何复选框的值(不更改MyTextBox的值)并按MySubmitButton,则不会调用select方法,因此不会发生“MyObjectDataSource_Selecting”事件并且我得到相同的结果和以前一样。
我发现解决此问题的一种方法是在单击MySubmitButton时显式调用MyGridView.DataBind方法。这是处理这些类型参数的最佳方法吗?我担心的是,这可能导致select方法被调用两次,使页面变慢。
提前感谢您的帮助。
CD
答案 0 :(得分:0)
这就是我最终要做的事情。
我检查过,并且在执行此操作时不会调用select方法两次。