asp.net - 检查gridview控件内下拉列表中的重复值
问题描述
我有一个带有gridview控件的向导控件,在gridview中我有下拉列表和标签控件作为模板列。我想检查下拉列表中的任何重复值,如果找到,显示错误消息并且不想移动到向导控件中的下一步。到目前为止,我将值存储在一个数组中并检查重复条目,但我不知道如何禁用向导控件中下一个按钮的回发
在 rowdatabound 事件中
foreach (GridViewRow row in GridView1.Rows)
{
string s = string.Empty;
if ((row.FindControl("LCSCD") as Label).Text != "FL")
{
if (((DropDownList)row.FindControl("DSBCD")).Visible == false)
{
s = ((Label)row.FindControl("LSBCD")).Text.ToString().Substring(0, ((Label)row.FindControl("LSBCD")).Text.ToString().IndexOf(" "));
sarray.Add(s);
}
else
{
s = ((DropDownList)row.FindControl("DSBCD")).SelectedItem.Value;
sarray.Add(s);
}
}
if (sarray.Distinct().Count() != sarray.Count())
{
}
else
{
}
请在这方面帮助我谢谢
解决方案
您必须做的第一件事是找到带有薄网格视图的向导控件。您可以通过以下方式执行此操作,或者:
yourGridViewID.TemplateControl.FindControl("wizardcontrolname")
在您的向导控件中,为下一步指定一个 ID,这样您就可以操作向导步骤。
为了操作 Next 按钮(实际上称为 Step),您必须使用 Wizard Control 中的 FindControl 方法,以便您可以找到向导步骤(显示为带有文本“Next”的按钮),并根据您的条件启用或禁用它或使其可见或不可见,具体取决于下拉列表的值。
这是我快速编写的基于下拉列表中所选项目的一些快速代码:
Protected Sub ddl_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddl.SelectedIndexChanged
Dim wStep As WizardStep = CType(Wizard1.FindControl("next"), WizardStep)
If ddl.SelectedValue = 0 Then
wStep.TemplateControl.Visible = False
MsgBox("Not Allowed")
Else
wStep.Visible = True
End If
End Sub
通过两个控件需要大量挖掘,但可以完成。
推荐阅读
- c - 将节点添加到列表的问题
- flutter - Flutter Webview - 键盘不会自动关闭
- apache-kafka - 覆盖 KStreams 默认序列化器 (ByteArraySerializer)
- php - 我无法在其创建过程中自动添加用户 ID - Symfony 5
- spring-batch - Spring Batch:这有模式吗?
- javascript - AJAX PHP 调用请求无响应
- python - 根据字符串生成数字
- unit-testing - 允许 jest 模拟从测试文件外部调用的函数的幕后发生了什么?
- unicode - Microsoft Keyboard Layout Creator:安装后显示的变音符号错误
- python - ModuleNotFoundError:在heroku上部署django项目期间没有名为“jinja2”的模块