asp.net - Gridview 多个复选框选择
问题描述
我想检查多个项目复选框而不单击复选框,而不是单击其他单击列。
这是我的 **.cs 代码
private void gridView2_RowClick(object sender,DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
{
if (gridView2.GetSelectedRows().Count() > 0)
{
foreach (int i in gridView2.GetSelectedRows())
{
gridView2.SelectRow(i);
}
}
}
而且,这是我的 **.designer.cs 代码
this.gridView2.OptionsSelection.MultiSelect = true;
this.gridView2.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CheckBoxRowSelect;
this.gridView2.OptionsSelection.ShowCheckBoxSelectorInGroupRow = DevExpress.Utils.DefaultBoolean.True;
解决方案
好的,假设一个gridview?
我们有这个标记:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" CssClass="table table-hover" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:BoundField DataField="FirstName" HeaderText="FirstName" />
<asp:BoundField DataField="LastName" HeaderText="LastName" />
<asp:BoundField DataField="HotelName" HeaderText="HotelName" />
<asp:BoundField DataField="City" HeaderText="City" />
<asp:TemplateField HeaderText="Check Test" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" OnClick="MyCheckBoxClick(this);"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<script>
function MyRowCheck(ctrl) {
MyCheckBox = document.getElementById(ctrl);
MyCheckBox.checked = !MyCheckBox.checked
}
function MyCheckBoxClick(ct) {
ct.checked = !ct.checked
}
</script>
要加载的代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadGrid();
}
}
void LoadGrid()
{
using (SqlCommand cmdSQL = new SqlCommand("SELECT TOP 12 * from tblHotels ORDER BY HotelName",
new SqlConnection(Properties.Settings.Default.TEST3)))
{
cmdSQL.Connection.Open();
GridView1.DataSource = cmdSQL.ExecuteReader();
GridView1.DataBind();
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
CheckBox MyCheckBox = (CheckBox)e.Row.FindControl("CheckBox1");
e.Row.Attributes["onclick"] = "MyRowCheck('" + MyCheckBox.ClientID + "');";
}
}
因此,我们只需将 ROW 单击附加到网格。
我们得到这个输出:
这工作正常,单击该行将切换复选框。
但是,问题是如果你真的点击了复选框。行单击触发切换复选框,然后单击复选框也触发并取消您刚刚所做的!
所以,我在复选框中添加了点击事件——我们只需再次切换设置,我们就可以开始了。
推荐阅读
- .net - 在 Visual Studio 2019 中找不到 SDK
- github-actions - 如何获取用户名,负责在 github 操作中触发工作流
- php - 使用 Carbon 仅解析时间
- javascript - 如何在 react-native 中跨所有组件/屏幕或全局监听 socket.io 事件?
- google-sheets - Google 表格:如何离线打开文件
- python - python从apsx下载图片,验证码OCR
- javascript - 在 wavesurfer.js 和 Web Audio API 处理后下载结果 mp3 文件
- python - python日期str解析
- python - 我想通过迁移学习创建回归模型,但出现错误
- android - 我的颤振应用程序仅在调试模式下运行(USB 电缆)并且在我的设备中看不到它