我有一个页面,我试图自定义一个"语言组"对于项目管理应用程序。 (我们做的艺术品项目通常需要翻译,我希望能够让用户点击一个链接按钮(或其他控件)将某些语言组合在一起。他们可能会点击一个"拉丁美洲"按钮,这将检查我定义的所有语言在该组中。我不想限制或限制他们的选择;我只是希望按钮只需预先检查一堆框以使该过程更有效。
我有一张包含ID的所有语言的表格,然后我有另一张包含语言组的表格(LanguageID
和LanguageGroupID
)。
链接按钮会传递" LanguageGroupID
"然后,如果在LanguageID
表中找到LanguageGroup
LanguageGroupID
并且与LanguageGroups
对应,则会检查这些框。
我用另一种方式构建了它,它有{{1}}的复选框,当你检查它时,它会显示那些语言,但它很乱,而且它不按我想要的方式工作它来。我告诉你那段代码,但我放弃了那种方法!
那么,有没有人有一些基本的例子说明我会怎么做?
答案 0 :(得分:1)
这可以通过多种方式实现。客户端,你可以使用javascript。一种情况是在您的语言表中有一个具有语言类型的列(这可能是可见的或隐藏的)。当用户检查语言类型时,这可能会触发迭代语言表的javascript事件,在语言类型列中查找值。如果匹配,请检查它。这都可以通过使用文档对象模型来完成。
或者,如果你正在使用带有代码的asp.net,你可以在更新面板中实现一个gridview,它附加到你创建的数据源(具有语言和语言类型值的类列表)。当用户检查语言类型时,会发生部分回发。然后,您可以遍历gridview的数据源并选中相应的复选框。
答案 1 :(得分:0)
据我了解你的问题,你要说的是一个用户我想点击“拉丁美洲”的一些按钮然后会检查一系列复选框,所以PortugueseCB,SpanishCB,etcCB ......还有它听起来你有3个项目:语言,语言ID,LanguageGroupId 你可以做的是创建一个包含id和语言的类
public class LanguageIdent
{
public int ID;
public string Language
}
然后创建另一个包含这些
列表的类public class LanguageGroup
{
public List<LanguageIdent> LanguageID;
}
从那里你可以根据需要初始化和创建方法。您还可以使用列出的所有方法,这些方法非常棒。您可以像
那样实施支票系统private void SpanishCB_checkChanged(object sender, EventArgs e)
{
LanguageGroup LG = new LanguageGroup();
for(int i =0; i<LG.Count(); i++)
{
if(LG.LanguageID.ID == LatinAmericaID)
{
int index = checkedListBox1.IndexOf(nL.LanguageID[i].Language);
checkedListBox.SetItemsChecked(index, checked(CheckState.Checked));
}
}
}
因此,在您的表单中,您将拥有一个checkedListBox,您可以按照自己想要的方式按字母顺序排列,区域等。然后,当用户选中“拉丁美洲”时,只会检查属于该ID的语言。希望这可以帮助。