【发布时间】:2011-05-13 09:16:17
【问题描述】:
对此有很多问题,但我无法使用其中任何一个的答案来解决我的问题(经过多次尝试......)
我正在使用 vb.net 创建一个 asp.net Web 应用程序。我的页面上有一个 SqlDataSource 和一个 GridView:
<asp:SqlDataSource ID="msgUnread" runat="server"
ConnectionString="<%$ ConnectionStrings:edinsec %>"
SelectCommand="SELECT [msgdate], [email], [name], [message], [readit] FROM [messages]"
UpdateCommand="UPDATE messages SET readit = 'True' WHERE (msgid = @msgid)">
<UpdateParameters>
<asp:Parameter Name="msgid" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:GridView ID="unreadMessages" runat="server" AutoGenerateColumns="False"
BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"
CellPadding="3" DataSourceID="msgUnread">
<RowStyle ForeColor="#000066" />
<Columns>
<asp:BoundField DataField="msgdate" HeaderText="Date & time"
SortExpression="msgdate" />
<asp:BoundField DataField="email" HeaderText="Email"
SortExpression="email" />
<asp:BoundField DataField="name" HeaderText="Name" SortExpression="name" />
<asp:TemplateField HeaderText="Mark as read" SortExpression="readit">
<%--<EditItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("readit") %>' OnCheckedChange="CheckBox1_CheckedChanged" />
</EditItemTemplate>--%>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Bind("readit") %>' OnCheckChanged="CheckBox1_CheckedChanged" AutoPostBack="true"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="White" ForeColor="#000066" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
GridView 被正确填充,复选框的值被正确显示(“readit”字段是一个位字段,即布尔值)。我试图让脚本在单击复选框时更新数据库中的布尔值。目前,虽然我什至无法让脚本对点击做出反应(甚至不是 MsgBox)。
这是我的代码隐藏:
Public Partial Class enqur
Inherits System.Web.UI.Page
WithEvents CheckBox1 As CheckBox
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
End Sub
Public Sub CheckBox1_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
MsgBox("test")
End Sub
End Class
如您所见,我正在使用 WithEvents,但这似乎没有帮助。在上面的代码中,我试图得到的只是对单击复选框的某种反应——但没有任何反应(也没有错误)。
我很困惑。任何人都可以帮忙吗?将不胜感激:)
【问题讨论】:
标签: sql vb.net gridview checkbox