我有一个ASP.NET GridView应该执行SQL查询。 该查询从未执行过,因此我强烈怀疑某处存在绑定问题。
这是aspx代码:
<asp:SqlDataSource ID="i_sdsGv" runat="server" ConnectionString="<%$ ConnectionStrings:XXX %>"
SelectCommand="INCOHERENT QUERY IN ORDER TO TRIGGER AN EXCEPTION"
SelectCommandType="Text"
<SelectParameters>
<asp:QueryStringParameter Name="MyTableId" QueryStringField="MyTableId" />
</SelectParameters>
</asp:SqlDataSource>
...
<asp:GridView ID="i_gv" runat="server" AutoGenerateColumns="False" DataKeyNames="MyTableId"
DataSourceID="i_sdsGv" OnRowDataBound="i_gvOptionChoix_RowDataBound">
<Columns>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:TextBox ID="i_tbName" runat="server" Text='<%# Bind("MyTableName") %>' />
</ItemTemplate>
</Columns>
<EmptyDataTemplate>
NO ROWS TO DISPLAY
</EmptyDataTemplate>
</asp:GridView>
我100%确定如果查询字符串不精确,则会触发异常。 在我的例子中,没有触发异常,因此不执行查询。 我得到NO ROWS来显示文字。
我能想到的唯一明显的绑定是在DataSource和GridView之间。它对我来说确实很好。
所以我怀疑有一个问题:
DataKeyNames="MyTableId" ?
我的i_gvOptionChoix_RowDataBound方法目前是空的,但我认为此时无所谓?
我缺少什么,以便应用程序实际上尝试执行查询? 请事先提供帮助