我有40个文本框代码在
之下<asp:textbox ID="txtemail" runat="server" Cssclass="form-control">
<asp:textbox ID="txtname" runat="server" Cssclass="name">
<asp:textbox ID="txtemail2" runat="server" Cssclass="form-control">
<asp:textbox ID="txtname2" runat ="server" Cssclass="name">
就像我有40个文本框20用于电子邮件和20个用于名称。我需要将这些值存储到数据库中,因为我在代码下使用
foreach (var textbox in panelemail.Controls.OfType<TextBox>())
{
string emailtxt = textbox.Text;
BAL_F2290 objbalemail = new BAL_F2290();
Form2290.Form objemail = new Form2290.Form();
objemail.UserID = Convert.ToString(Session["USER_KEY"]);
objemail.Email = txtemail.text;
objemail.name = txtname.text;
string res = objbalemail.Referral_Email_BAL(objemail);
}
我的问题是只有一个值可以传递电子邮件或名称,但我需要一次传递两个值。如何在一个循环中传递两个值。
答案 0 :(得分:0)
完整的解决方案是更改视图模型,以便拥有名称和电子邮件文本框的逻辑组。如果您需要快速修复枚举中每两个连续元素的分组,请参阅以下代码:
var elements = Enumerable.Range(1, 10);
System.Diagnostics.Debug.Assert(elements.Count() % 2 == 0);
var oddElements = elements.Where((elem, index) => index % 2 == 0);
var evenElements = elements.Where((elem, index) => index % 2 == 1);
var pairs = oddElements.Zip(evenElements, (first, second) => new { first, second });
foreach (var item in pairs)
{
DoSomething(item.first, item.second);
}
您可以将elements
替换为您的控件集合,将DoSomething
替换为您计划用姓名和电子邮件处理的逻辑。
答案 1 :(得分:0)
首先重命名初始TextBoxes名称,如下所示
<asp:textbox ID="txtemail1" runat="server" Cssclass="form-control">
----^
<asp:textbox ID="txtname1" runat="server" Cssclass="name">
----^
同样对其他TextBox也一样明智。
之后执行迭代操作以在panelemail
控件中查找控件,如下所述。
for(int i=1;i <= 20;i++)
{
//Find the control using ID of Textbox and value of i
TextBox emailTxt = panelemail.FindControl("txtemail"+i) AS TextBox;
TextBox nameTxt = panelemail.FindControl("txtname"+i) AS TextBox;
string emailValue = String.Empty;
if(emailTxt !=null)
emailValue = emailTxt.Text;
string nameValue = String.Empty;
if(nameTxt !=null)
nameValue = nameTxt.Text;
BAL_F2290 objbalemail = new BAL_F2290();
Form2290.Form objemail = new Form2290.Form();
objemail.UserID = Convert.ToString(Session["USER_KEY"]);
objemail.Email = emailValue;
objemail.name = nameValue ;
string res = objbalemail.Referral_Email_BAL(objemail);
}