1
我遇到了一个奇怪的问题。我试图看看在gridview中选择了哪些复选框。我的代码看起来像我在互联网上找到的例子,并且在Chrome中运行FF &,但在IE9中失败。 在IE9中,checked属性从不返回true。我已经浏览了代码,并验证了它正在查看正确的复选框,但IE始终会返回false。使用IE的Gridview复选框
有没有人有任何想法?以下是我的标记&代码隐藏。
<asp:GridView ID="gvParts" runat="server"
AllowSorting="True" AutoGenerateColumns="False"
CellPadding="5" DataKeyNames="Rec_ID" DataSourceID="dsParts"
PageSize="50" Width="100%">
<Columns>
<asp:TemplateField HeaderText="Select">
<HeaderTemplate>
Select
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="chkSelect" runat="server"/>
</ItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="75px" />
</asp:TemplateField>
<asp:BoundField DataField="Arcft_Make" HeaderText="Make"
SortExpression="Arcft_Make" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="Arcft_Model" HeaderText="Model"
SortExpression="Arcft_Model" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="Source_Name"
HeaderText="Source_Name"
SortExpression="Source_Name"
DataFormatString="{0:d}"
HtmlEncode="false">
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="Part_Number"
HeaderText="Part Number"
SortExpression="Part_Number" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="Vendor_Part_Number"
HeaderText="Vendor Number"
SortExpression="Vendor_Part_Number" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="Vendor_Name"
HeaderText="Vendor Name"
SortExpression="Vendor_Name" >
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="Descr"
HeaderText="Description"
SortExpression="Descr">
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle Width="300px" HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="Date_Added"
HeaderText="Date_Added"
SortExpression="Date_Added">
<HeaderStyle HorizontalAlign="Left" />
<ItemStyle HorizontalAlign="Left" />
</asp:BoundField>
<asp:BoundField DataField="Rec_ID"
ReadOnly="True" Visible="False">
<ItemStyle Width="0px" />
</asp:BoundField>
<asp:CommandField ShowEditButton="True" />
</Columns>
<SelectedRowStyle BackColor="#FFFFCC" />
<AlternatingRowStyle BackColor="#CCFFFF" />
</asp:GridView>
`
而且
Protected Sub btnAdd_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Handles btnAdd.Click
Dim Rec_IDs As New List(Of String)
Dim Rec_ID As Int32
Rec_IDs = Session("Rec_IDs")
For Each Row As GridViewRow In gvParts.Rows
If CType(Row.FindControl("chkSelect"), CheckBox).Checked Then
Rec_ID = gvParts.DataKeys(Row.RowIndex).Value
If Not Rec_IDs.Contains(Rec_ID) Then
Rec_IDs.Add(Rec_ID)
End If
CType(Row.FindControl("chkSelect"), CheckBox).Checked = False
End If
Next
Session("Rec_IDs") = Rec_IDs
lblCount.Text = String.Format("You have {0} records selected",
Rec_IDs.Count.ToString)
End Sub
@Chris,感谢您清理代码。如果你告诉我它是如何完成的,下次我会确保自己做。 –
在这里你的代码,如何在stackoverflow中格式化代码块:http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks – Chris