0

我有一个页面,我正在尝试为项目管理应用程序自定义“语言组”。(我们做的艺术作品经常需要翻译,我希望能够让用户点击链接按钮(或其他控件)将某些语言组合在一起。他们可能会点击“拉丁美洲”按钮,这将检查所有我定义为该组中的语言。我不想限制或限制他们的选择;我只想让按钮简单地预先检查一堆框,以提高流程效率。

我有一个包含所有语言的表,带有 ID,然后我有另一个包含语言组的表(带有LanguageID和 a LanguageGroupID)。

链接按钮将传递一个“ ”,然后如果在表中找到并对应于LanguageGroupID该框,则框将变为选中状态。LanguageIDLanguageGroupLanguageGroupID

我用另一种方式构建了它,它有 的复选框LanguageGroups,当你检查它时,它会显示这些语言,但它很混乱,而且它没有按照我想要的方式工作。我会向您展示该代码,但我将放弃该方法!

那么,有没有人有一些基本的例子来说明我将如何做到这一点?

4

2 回答 2

1

这可以通过多种方式实现。客户端,您可以使用javascript。一种情况是在您的语言表中有一个具有语言类型的列(这可能是可见的或隐藏的)。当用户检查语言类型时,这可能会触发一个遍历语言表的 javascript 事件,在语言类型列中查找值。如果匹配,请检查它。这一切都可以通过使用文档对象模型来完成。

或者,如果您使用带有代码的 asp.net,您可以在更新面板内实现一个网格视图,它附加到您创建的数据源(具有语言和语言类型值的类列表)。当用户检查语言类型时,会发生部分回发。然后,您可以遍历 gridview 的数据源并选中相应的复选框。

于 2013-02-27T16:31:31.097 回答
0

As far as I understand your question you're saying as a user I would want to click some button for "Latin America" and then a series of checkboxes would become checked, so PortugueseCB, SpanishCB, etcCB... Also it sounds like you have 3 items: Languages, Language ID, LanguageGroupId.
What you could do is create a class that contains the id and the language

public class LanguageIdent
{
public int ID; 
public string Language 
} 

Then create another class that contains a list of these

public class LanguageGroup
{
public List<LanguageIdent> LanguageID; 
}

From there you can initialize and create methods as you see fit. Also you use the all the methods given to lists which is awesome. You could implement your check system perhaps like

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));
}
}
}

So in your form you would have a checkedListBox which you could arrange any way you want, alphabetically, region, etc. Then when the user checked "Latin America" only places languages belonging to that id will be checked. Hope this helps.

于 2013-02-27T17:09:36.667 回答