我根据
http://expert.csdn.net/Expert/topic/2283/2283584.xml?temp=4.356021E-02
你的方法,却不能实现,页面刷新后,还是可以多选!我想实现只能选一个,不能多选,即:一个被选中,其他的立即不被选中。
代码如下:
<HEAD>
<title></title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<SCRIPT LANGUAGE="JavaScript">
<!--
function SetCheckBoxState()
{
var dom=document.all;
var el=event.srcElement;
if(el.tagName=="INPUT"&&el.type.toLowerCase()=="checkbox"&&el.id.indexOf("chkExportItem")>=0)
{
for(i=0;i<dom.length;i++)
{
if(dom[i].tagName=="INPUT"&&dom[i].type.toLowerCase()=="checkbox"&&dom[i].id.indexOf("chkExportItem")>=0)
{
dom[i].checked=false;
}
}
}
el.checked=!el.checked;
}
//-->
</SCRIPT>
</HEAD>
<body ms_positioning="GridLayout" onclick="SetCheckBoxState()">
<form id="Form1" method="post" runat="server">
<TABLE align="center">
<TR>
<TD width="10"></TD>
<TD><asp:textbox id="WorkID" Runat="server" Visible="False" Width="1"></asp:textbox></TD>
<TD width="10"></TD>
</TR>
<tr>
<td></td>
<td height="10"><span id="Message" runat="server"></span></td>
<td></td>
</tr>
<TR>
<TD width="10"></TD>
<TD align="center"><asp:panel id="Panel1" Runat="server">
<DIV style="OVERFLOW: auto; WIDTH: 660px; HEIGHT: 330px">
<TABLE> <TR>
<TD>
<asp:DataGrid id="DataGrid1" Runat="server" autogeneratecolumns="False" EnableViewState="False"〉
<Columns>
<asp:BoundColumn DataField="JobChargeID" Visible="False"></asp:BoundColumn>
<asp:BoundColumn DataField="JobDate" HeaderText="日 期" HeaderStyle-Width="65"></asp:BoundColumn> <asp:TemplateColumn HeaderText="复核">
<ItemTemplate>
<asp:CheckBox ID="chkExportItem" Runat="server" OnCheckedChanged="DataGrid_ChkChange" AutoPostBack="True"></asp:CheckBox>
</ItemTemplate> </asp:TemplateColumn>
</Columns>
</asp:DataGrid></TD> </TR>
<TR> <TD height="5"></TD> </TR>
</TABLE>
</DIV>
</asp:panel></TD>
<TD width="10"></TD>
</TR>
<tr>
<td></td>
<td>
<TABLE>
<TR>
<td>日期</td>
<TD><asp:textbox id="TextBox1" Runat="server"></asp:textbox></TD>
</tr>
</TABLE>
</td>
</tr>
</TABLE>
</form>
</body>后台:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
GetData()
End SubPrivate Sub GetData()
榜顶数据
End Sub
Sub DataGrid_ChkChange(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim CHKB As CheckBox
Dim DGItem As DataGridItem
Dim STRCHK, OP As String
Dim WD As Date = System.DateTime.Now
Dim i, j As Integer
Dim TB As TextBox For Each DGItem In DataGrid1.Items
CHKB = DGItem.FindControl("chkExportItem")
If CHKB.Checked Then
For i = 1 To 8
j = i + 1
TB = Panel1.FindControl("TextBox" + i.ToString())
If Trim(DGItem.Cells(j).Text) = "" Then
TB.Text = ""
Else
TB.Text = DGItem.Cells(j).Text
End If
Next
End If
Next
End Sub
http://expert.csdn.net/Expert/topic/2283/2283584.xml?temp=4.356021E-02
你的方法,却不能实现,页面刷新后,还是可以多选!我想实现只能选一个,不能多选,即:一个被选中,其他的立即不被选中。
代码如下:
<HEAD>
<title></title>
<meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
<meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
<SCRIPT LANGUAGE="JavaScript">
<!--
function SetCheckBoxState()
{
var dom=document.all;
var el=event.srcElement;
if(el.tagName=="INPUT"&&el.type.toLowerCase()=="checkbox"&&el.id.indexOf("chkExportItem")>=0)
{
for(i=0;i<dom.length;i++)
{
if(dom[i].tagName=="INPUT"&&dom[i].type.toLowerCase()=="checkbox"&&dom[i].id.indexOf("chkExportItem")>=0)
{
dom[i].checked=false;
}
}
}
el.checked=!el.checked;
}
//-->
</SCRIPT>
</HEAD>
<body ms_positioning="GridLayout" onclick="SetCheckBoxState()">
<form id="Form1" method="post" runat="server">
<TABLE align="center">
<TR>
<TD width="10"></TD>
<TD><asp:textbox id="WorkID" Runat="server" Visible="False" Width="1"></asp:textbox></TD>
<TD width="10"></TD>
</TR>
<tr>
<td></td>
<td height="10"><span id="Message" runat="server"></span></td>
<td></td>
</tr>
<TR>
<TD width="10"></TD>
<TD align="center"><asp:panel id="Panel1" Runat="server">
<DIV style="OVERFLOW: auto; WIDTH: 660px; HEIGHT: 330px">
<TABLE> <TR>
<TD>
<asp:DataGrid id="DataGrid1" Runat="server" autogeneratecolumns="False" EnableViewState="False"〉
<Columns>
<asp:BoundColumn DataField="JobChargeID" Visible="False"></asp:BoundColumn>
<asp:BoundColumn DataField="JobDate" HeaderText="日 期" HeaderStyle-Width="65"></asp:BoundColumn> <asp:TemplateColumn HeaderText="复核">
<ItemTemplate>
<asp:CheckBox ID="chkExportItem" Runat="server" OnCheckedChanged="DataGrid_ChkChange" AutoPostBack="True"></asp:CheckBox>
</ItemTemplate> </asp:TemplateColumn>
</Columns>
</asp:DataGrid></TD> </TR>
<TR> <TD height="5"></TD> </TR>
</TABLE>
</DIV>
</asp:panel></TD>
<TD width="10"></TD>
</TR>
<tr>
<td></td>
<td>
<TABLE>
<TR>
<td>日期</td>
<TD><asp:textbox id="TextBox1" Runat="server"></asp:textbox></TD>
</tr>
</TABLE>
</td>
</tr>
</TABLE>
</form>
</body>后台:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
GetData()
End SubPrivate Sub GetData()
榜顶数据
End Sub
Sub DataGrid_ChkChange(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim CHKB As CheckBox
Dim DGItem As DataGridItem
Dim STRCHK, OP As String
Dim WD As Date = System.DateTime.Now
Dim i, j As Integer
Dim TB As TextBox For Each DGItem In DataGrid1.Items
CHKB = DGItem.FindControl("chkExportItem")
If CHKB.Checked Then
For i = 1 To 8
j = i + 1
TB = Panel1.FindControl("TextBox" + i.ToString())
If Trim(DGItem.Cells(j).Text) = "" Then
TB.Text = ""
Else
TB.Text = DGItem.Cells(j).Text
End If
Next
End If
Next
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货