在使用IE的GridView复选框 [英] Checkboxes in Gridview using IE
问题描述
我遇到一个奇怪的问题。我想看看有什么复选框被GridView控件中选择。我的code看起来像它遵循我在互联网上找到的例子,而在FF&功放的工作原理; Chrome浏览器,但却未能在IE9。
在IE9中,选中属性永远返回true。我已经通过了code台阶状,已经验证了它在寻找正确的复选框,但IE浏览器将始终返回false。
有没有人有什么想法?下面是我的标记和放大器; codebehind。
< ASP:GridView控件ID =gvParts=服务器
AllowSorting =真的AutoGenerateColumns =FALSE
CELLPADDING =5的DataKeyNames =Rec_ID的DataSourceID =dsParts
每页=50WIDTH =100%>
<柱体和GT;
< ASP:的TemplateField的HeaderText =选择>
<&HeaderTemplate中GT;
选择
< / HeaderTemplate中>
<&ItemTemplate中GT;
< ASP:复选框ID =chkSelect=服务器/>
< / ItemTemplate中>
< ItemStyle HorizontalAlign =中心WIDTH =960x75像素/>
< / ASP:的TemplateField>
< ASP:BoundField的数据字段=Arcft_Make的HeaderText =让
SORTEX pression =Arcft_Make>
< HeaderStyle HorizontalAlign =左/>
< ItemStyle HorizontalAlign =左/>
< / ASP:BoundField的>
< ASP:BoundField的数据字段=Arcft_Model的HeaderText =模式
SORTEX pression =Arcft_Model>
< HeaderStyle HorizontalAlign =左/>
< ItemStyle HorizontalAlign =左/>
< / ASP:BoundField的>
< ASP:BoundField的数据字段=SOURCE_NAME
的HeaderText =SOURCE_NAME
SORTEX pression =SOURCE_NAME
DataFormatString ={0:D}
HtmlEn code =false的>
< HeaderStyle HorizontalAlign =左/>
< ItemStyle HorizontalAlign =左/>
< / ASP:BoundField的>
< ASP:BoundField的数据字段=零件号码
的HeaderText =型号
SORTEX pression =零件号码>
< HeaderStyle HorizontalAlign =左/>
< ItemStyle HorizontalAlign =左/>
< / ASP:BoundField的>
< ASP:BoundField的数据字段=Vendor_Part_Number
的HeaderText =供应商编号
SORTEX pression =Vendor_Part_Number>
< HeaderStyle HorizontalAlign =左/>
< ItemStyle HorizontalAlign =左/>
< / ASP:BoundField的>
< ASP:BoundField的数据字段=VENDOR_NAME
的HeaderText =供应商名称
SORTEX pression =VENDOR_NAME>
< HeaderStyle HorizontalAlign =左/>
< ItemStyle HorizontalAlign =左/>
< / ASP:BoundField的>
< ASP:BoundField的数据字段=DESCR
的HeaderText =说明
SORTEX pression =DESCR>
< HeaderStyle HorizontalAlign =左/>
< ItemStyle WIDTH =300像素HorizontalAlign =左/>
< / ASP:BoundField的>
< ASP:BoundField的数据字段=DATE_ADDED
的HeaderText =DATE_ADDED
SORTEX pression =DATE_ADDED>
< HeaderStyle HorizontalAlign =左/>
< ItemStyle HorizontalAlign =左/>
< / ASP:BoundField的>
< ASP:BoundField的数据字段=Rec_ID
只读=真可见=假>
< ItemStyle宽度=0像素/>
< / ASP:BoundField的>
< ASP:CommandField中ShowEditButton =真/>
< /专栏>
< SelectedRowStyle背景色=#FFFFCC/>
< AlternatingRowStyle背景色=#CCFFFF/>
< / ASP:GridView的>
`
和
保护小组btnAdd_Click(BYVAL发件人为对象,BYVAL E上System.EventArgs)
处理btnAdd.Click
昏暗Rec_IDs作为新的列表(串)
昏暗Rec_ID作为的Int32
Rec_IDs =会议(Rec_IDs)
对于每一行作为GridViewRow在gvParts.Rows
如果CTYPE(Row.FindControl(chkSelect),复选框),然后.Checked
Rec_ID = gvParts.DataKeys(Row.RowIndex).value的
如果不Rec_IDs.Contains(Rec_ID)然后
Rec_IDs.Add(Rec_ID)
万一
CTYPE(Row.FindControl(chkSelect),复选框).Checked =假
万一
下一个
会议(Rec_IDs)= Rec_IDs
lblCount.Text =的String.Format(您选择{0}记录
Rec_IDs.Count.ToString)
结束小组
确定,解决了。我的GridView不是我的表单标签内。我猜IE浏览器不喜欢这一点。
I'm running into a strange issue. I'm trying to see what checkboxes are selected within the gridview. My code looks like it follows the examples I found on the internet, and works in FF & Chrome, but fails in IE9. In IE9, the checked property never returns true. I've stepped through the code, and have verified that it's looking at the correct checkbox, but IE will always return false.
Does anyone have any ideas? Below is my markup & codebehind.
<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>
`
And
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
OK, solved. My gridview wasn't inside my form tags. I guess IE didn't like that.
这篇关于在使用IE的GridView复选框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!