我有一个Checkboxlist
,其中的项目是从数据库绑定的。
现在我想要的是,每当用户从列表中检查注册/传送契约值时,gridview
就会被禁用。
我试过下面的代码。
protected void ddlStatus_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlStatus.SelectedValue == "30" && strMode == "M")
{
GridExpInfo.AllowAddingRecords = false;
}
else
{
GridExpInfo.AllowAddingRecords = true;
}
}
会发生什么情况,它始终显示列表中Agreement
的选定值, 20
以下是列表的屏幕截图
更新
ASPX: -
<asp:CheckBoxList ID="ddlStatus" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlStatus_SelectedIndexChanged">
</asp:CheckBoxList>
C#
private void BindStatus()
{
DataTable dtstatus = new DataTable();
OracleDataAdapter dastatus = new OracleDataAdapter("SELECT lookup_code agr_type_code, meaning agr_type " +
"FROM apps.fnd_lookup_values_vl " +
"WHERE (NVL ('', territory_code) = territory_code OR territory_code IS NULL " +
") AND lookup_type = 'XXACL_FARM_AGR_TYPE' " +
"AND (lookup_type LIKE 'XXACL_FARM_AGR_TYPE') " +
"AND (view_application_id = 0) " +
"AND (security_group_id = 0) " +
"ORDER BY 1", ObjPriCon);
dastatus.Fill(dtstatus);
ddlStatus.DataTextField = "agr_type";
ddlStatus.DataValueField = "agr_type_code";
ddlStatus.DataSource = dtstatus;
ddlStatus.DataBind();
}
答案 0 :(得分:2)
您可以在代码中将属性AllowUserToAddRows
设置为false,如下所示。
this.yourGrid.AllowUserToAddRows = false;
this.BindDataGridView();
使用ForEach
循环检查您的情况。现在,您不仅首先选中了所有选定的项目。
protected void ddlStatus_OnSelectedIndexChanged(object sender, EventArgs e)
{
foreach (ListItem li in ddlStatus.Items)
{
if (li.Value == "30" && strMode == "M")
{
GridExpInfo.AllowUserToAddRows = false;
}
else
{
GridExpInfo.AllowUserToAddRows = true;
}
}
您也可以使用LINQ进行检查。
protected void ddlStatus_OnSelectedIndexChanged(object sender, EventArgs e)
{
if (strMode == "M")
{
var disable = (from ListItem item in ddlStatus.Items.OfType<ListItem>()
where item.Selected
where item.Value == "30"
select int.Parse(item.Value)).Any();
if (disable)
{
GridExpInfo.AllowUserToAddRows = false;
}
else
{
GridExpInfo.AllowUserToAddRows = true;
}
}
}
答案 1 :(得分:1)
试试这个代码段
protected void myCheckBoxList_SelectedIndexChanged(object sender, EventArgs e)
{
bool enableGrid = true;
foreach (ListItem listItem in ddlStatus.Items)
{
if (listItem.Value == "30" && listItem.Selected == true)
{
enableGrid = false;
}
}
if (enableGrid == true)
{
//enable grid and/or row inserts here
Label1.Text = "enabled";
}
else
{
//disable grid and/or row inserts here
Label1.Text = "disabled";
}
}