Mar*_*tel 4 c# datagridview radio-button
我有一个 Gridview 绑定到一个带有单选按钮列的数据库表,我想用单个单选按钮选择一行。是否需要一个单选按钮组?我有上面带有复选框的代码,但我想将其更改为单选按钮。我认为单选按钮代码是相似的。谢谢你。我正在使用 ASP.NET C#
<asp:GridView ID="DateGrid" runat="server" CellPadding="4" ForeColor="#333333"
GridLines="None" >
<AlternatingRowStyle BackColor="White" />
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:RadioButton ID="RowSelector" runat="server" GroupName="SelectGroup" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
背后的代码:
foreach (GridViewRow row in DateGrid.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkRow = (row.Cells[0].FindControl("DateChBox") as CheckBox);
if (chkRow.Checked)
{
startdate = row.Cells[2].Text;
enddate = row.Cells[3].Text;
Run Code Online (Sandbox Code Playgroud)
这可能会帮助你
前面的代码
<asp:GridView ID="gv" runat="server" AutoGenerateColumns="false" Width="100%">
<Columns>
<asp:TemplateField HeaderText="Select">
<ItemTemplate><asp:RadioButton ID="RowSelector" runat="server" onclick="checkRadioBtn(this);" /></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Start Date">
<ItemTemplate><asp:Label ID="lblStartDate" runat="server" Text='<%# DateTime.Now.ToString("MM/dd/yyyy") %>'></asp:Label></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="End Date">
<ItemTemplate><asp:Label ID="lblEndDate" runat="server" Text='<%# DateTime.Now.ToString("MM/dd/yyyy") %>'></asp:Label></ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
Run Code Online (Sandbox Code Playgroud)
当您选中其他单选按钮时,Javascript 将取消选中其他
<script type="text/javascript">
function checkRadioBtn(id) {
var gv = document.getElementById('<%=gv.ClientID %>');
for (var i = 1; i < gv.rows.length; i++) {
var radioBtn = gv.rows[i].cells[0].getElementsByTagName("input");
// Check if the id not same
if (radioBtn[0].id != id.id) {
radioBtn[0].checked = false;
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
用于绑定目的的代码隐藏...
protected void Page_Load(object sender, EventArgs e)
{
// Check
if (!IsPostBack)
{
// Varaible
DataTable dt = new DataTable();
dt.Columns.Add("A");
dt.Columns.Add("B");
for (int i = 0; i < 3; i++) dt.Rows.Add(i.ToString(), i.ToString());
// Bind
gv.DataSource = dt;
gv.DataBind();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20568 次 |
| 最近记录: |