页面有10个TextBox分别是:TextBox1,TextBox2,TextBox3......TextBox10
DataTable中有最多10条数据,如何通过循环实现,DataTable中有几条数据就给几个TextBox赋值呢?谢谢... DataTable tb = ds.Tables[0];
int t = tb.Rows.Count;
for (int i =0; i < t;i++ )
{
//这里应该怎么写呢?要达到的效果是有tb中有几条数据就给几个TextBox赋值
//TextBox1 对应 tb.Rows[1]["ItemName"].ToString();
//TextBox2 对应 tb.Rows[2]["ItemName"].ToString();依次类推...
}
DataTable中有最多10条数据,如何通过循环实现,DataTable中有几条数据就给几个TextBox赋值呢?谢谢... DataTable tb = ds.Tables[0];
int t = tb.Rows.Count;
for (int i =0; i < t;i++ )
{
//这里应该怎么写呢?要达到的效果是有tb中有几条数据就给几个TextBox赋值
//TextBox1 对应 tb.Rows[1]["ItemName"].ToString();
//TextBox2 对应 tb.Rows[2]["ItemName"].ToString();依次类推...
}
DataTable tb = ds.Tables[0];
int t = tb.Rows.Count;
if(t>0)
{
for (int i =0; i < t;i++ )
{
((TextBox)this.FindControl("TextBox" + i.ToString())).Text = tb.Rows[1]["ItemName"].ToString();
}
}
int t = tb.Rows.Count;
if(t>0)
{
for (int i =0; i < t;i++ )
{
((TextBox)this.FindControl("TextBox" + i.ToString())).Text = tb.Rows[i]["ItemName"].ToString();
}
}
你的方法报错啊:Object reference not set to an instance of an object.
TextBox txt;
txt =this.FindControl("TextBox" + i.ToString());
if(txt!=null)
{
txt.Text = tb.Rows[i]["ItemName"].ToString();
}
int t = tb.Rows.Count;
if(t>0)
{
for (int i =0; i < t;i++ )
{
((TextBox)this.FindControl("TextBox" + i.ToString())).Text = tb.Rows[i]["ItemName"].ToString();
}
}
改为DataTable tb = ds.Tables[0];
int t = tb.Rows.Count;
if(t>0)
{
for (int i =1; i < t;i++ )
{
((TextBox)this.FindControl("TextBox" + i.ToString())).Text = tb.Rows[i]["ItemName"].ToString();
}
}
int t = tb.Rows.Count;
if(t>0)
{
for (int i =0; i < t;i++ )
{
((TextBox)this.FindControl("TextBox" + (i+1).ToString())).Text = tb.Rows[i]["ItemName"].ToString();
}
}
txt一直获取不到,为Null。但界面上肯定有 TextBox1,TextBox2,TextBox3......
要确定你的TextBox的ID是什么格式的,报错的应该是:
((TextBox)this.FindControl("TextBox" + i.ToString())).Text = tb.Rows[i]["ItemName"].ToString();FindControl里边是TextBox的ID名称。
这个改过了,不行的....txt 获取不到,但界面上肯定有 TextBox1,TextBox2,TextBox3......
<asp:TextBox ID="com1" runat="server" ></asp:TextBox>
<asp:TextBox ID="com2" runat="server" ></asp:TextBox>
<asp:TextBox ID="com2" runat="server" ></asp:TextBox>
</div>
假如数据库中字段comname的存储方法为:"图片,图书,教程"中间有豆号
string[] comArray=dr["comname"].tostring().split(',');
foreach(int i = 0;i<comArray.Lenth;i++)
{
((TextBox)this.TextBoxs.FindControl("com"+(i+1).tostring())).text=comArray[i].tostring();
}
this.TextBoxs.FindContro
<table>
<tr>
<td>
投票主题:
</td>
<td>
<asp:TextBox ID="txtTitle" runat="server" Width="400px" Height="30px"></asp:TextBox>
</td>
</tr>
<tr>
<td>
主题描述:</td>
<td>
<asp:TextBox ID="txtContent" runat="server" Width="400px" Height="50px" TextMode="MultiLine"></asp:TextBox>
</td>
</tr>
<tr>
<td>
投票项目1:
</td>
<td>
<asp:TextBox ID="txtItem1" runat="server" Width="300px" ></asp:TextBox>
</td>
</tr>
<tr>
<td>
投票项目2:
</td>
<td>
<asp:TextBox ID="txtItem2" runat="server" Width="300px" ></asp:TextBox>
</td>
</tr>
<tr>
<td>
投票项目3:
</td>
<td>
<asp:TextBox ID="txtItem3" runat="server" Width="300px" ></asp:TextBox>
</td>
</tr> <tr>
<td>
投票项目4:
</td>
<td>
<asp:TextBox ID="txtItem4" runat="server" Width="300px" ></asp:TextBox>
</td>
</tr> <tr>
<td>
投票项目5:
</td>
<td>
<asp:TextBox ID="txtItem5" runat="server" Width="300px" ></asp:TextBox>
</td>
</tr> <tr>
<td>
投票项目6:
</td>
<td>
<asp:TextBox ID="txtItem6" runat="server" Width="300px" ></asp:TextBox>
</td>
</tr> <tr>
<td>
投票项目7:
</td>
<td>
<asp:TextBox ID="txtItem7" runat="server" Width="300px" ></asp:TextBox>
</td>
</tr> <tr>
<td>
投票项目8:
</td>
<td>
<asp:TextBox ID="txtItem8" runat="server" Width="300px" ></asp:TextBox>
</td>
</tr> <tr>
<td>
投票项目9:
</td>
<td>
<asp:TextBox ID="txtItem9" runat="server" Width="300px" ></asp:TextBox>
</td>
</tr> <tr>
<td>
投票项目10:
</td>
<td>
<asp:TextBox ID="txtItem10" runat="server" Width="300px" ></asp:TextBox>
<a href="#" onclick="AddItem" >+增加项目</a>
</td>
</tr>
<tr>
<td colspan="2">
<br />
<asp:Button ID="btnSubmit" runat="server" Text="确定" CssClass="btnBlue" OnClick="btnSubmit_Click" Height="30px" Width="80px" />
</td>
</tr>
</table>后台代码:----------------------------------------------------------------
protected void BindModel()
{
SMSBusinessPlatform.Model.Votes m=new SMSBusinessPlatform.Model.Votes ();
m.VoteId=VoteId;
DataSet ds=bllVote.GetListWithItem(m);
if (DataSetHelper.IsExistDate(ds))
{
DataTable tb = ds.Tables[0];
int t = tb.Rows.Count;
TextBox txt;
for (int i =0; i < t;i++ )
{
int tt = i + 1;
string ItemName= tb.Rows[i]["ItemName"].ToString();
txt = (TextBox)this.FindControl("txtItem" + tt.ToString());
if (txt != null)
{
txt.Text = tb.Rows[i]["ItemName"].ToString();
}
}
}
}阿非费心了....
foreach(int i = 0;i<comArray.Lenth;i++)
{
((TextBox)this.TextBox.FindControl("com"+(i+1).tostring())).text=comArray[i].tostring();
}没有那个s
DataSet中肯定有数据的...
如果TextBox和绑定程序一个在母版页,另一个在aspx页就不能这样找了。
<asp:TextBox ID="com1" runat="server" ></asp:TextBox>
<asp:TextBox ID="com2" runat="server" ></asp:TextBox>
<asp:TextBox ID="com3" runat="server" ></asp:TextBox>
</div> void Page_Load(object sender, System.EventArgs e)
{
for (int i = 1; i < 4;i++ )
{
((TextBox)this.TextBoxs.FindControl("com"+i.ToString())).Text ="sds";
}
}
我改了成这个也是找不到txt
protected void BindModel()
{
SMSBusinessPlatform.Model.Votes m=new SMSBusinessPlatform.Model.Votes ();
m.VoteId=VoteId;
DataSet ds=bllVote.GetListWithItem(m);
if (DataSetHelper.IsExistDate(ds))
{
DataTable tb = ds.Tables[0];
int t = tb.Rows.Count;
TextBox txt;
for (int i =0; i < t;i++ )
{
int tt = i + 1;
string ItemName= tb.Rows[i]["ItemName"].ToString();
txt = (TextBox)((MasterPage)Master).FindControl("txtItem" + tt.ToString());
if (txt != null)
{
txt.Text = tb.Rows[i]["ItemName"].ToString();
}
}
}
}
我改成如下,还是不行。难道和我使用的两层母版页有关吗?
txt = (TextBox)((MasterPage)Master).FindControl("txtItem" + tt.ToString());
{
((TextBox)this.Page.Master.FindControl("TextBoxs").FindControl("com" + i.ToString())).Text = "sds";
}
上层母版页结构<%@ MasterType virtualPath="~/Templates/temp1/main.master"%>
<%@ Master Language="C#" MasterPageFile="~/Templates/temp1/main.master" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="Templates_temp1_SNS_MasterPage" %><%@ Register src="UserControls/LeftAPP.ascx" tagname="LeftAPP" tagprefix="uc1" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table width="1002" border="0" cellspacing="0" cellpadding="0" align="center" >
<tr>
<td>
<div id="container">
<div id="app_bar">
<uc1:LeftAPP ID="LeftAPP1" runat="server" />
</div>
<div id="container_content">
<asp:ContentPlaceHolder ID="main" runat ="server" > </asp:ContentPlaceHolder>
</div>
</div>
</td>
</tr>
</table>
</asp:Content>
<%@ Register Src="UserControl/Header.ascx" TagName="Header" TagPrefix="uc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>网织钢铁商机平台</title>
<link rel="shortcut icon" href="../../favicon.ico" />
<link href="css/css.css" rel="stylesheet" />
<link rel="stylesheet" type="text/css" href="../../Css/smoothness/jquery-ui-1.8.16.custom.css" />
<link rel="stylesheet" type="text/css" href="../../App_Themes/Theme1/Controls.css" />
</head>
<body>
<script type="text/javascript" src="<%= Page.ResolveUrl("~/Scripts/jquery-1.4.2.min.js") %>"></script>
<script type="text/javascript" src="<%=Page.ResolveUrl("~/Scripts/jquery-ui-1.8.16.custom.min.js") %>"></script>
<script type="text/javascript" src="<%=Page.ResolveUrl("~/Scripts/jquery.waterinput.js") %>"></script>
<script type="text/javascript" src="<%=Page.ResolveUrl("~/Scripts/Jquery-ui-Datepicker.js") %>"></script> <form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<uc1:Header ID="Header1" runat="server" />
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
<uc2:Footer ID="Footer1" runat="server" />
<!--放在上面不起效果,所以放在底部-->
<style>
fieldset
{
padding: 10px;
margin-top: 5px;
border: 1px solid #1E7ACE;
background: #fff;
}
fieldset legend
{
color: #1E7ACE;
font-weight: bold;
padding: 3px 20px 3px 20px;
border: 1px solid #1E7ACE;
background: #fff;
}
</style>
<!--放在上面不起效果,所以放在底部-->
</form>
</body>
</html>
我晕.
TextBox
<asp:ContentPlaceHolder ID="main" runat ="server" ></asp:ContentPlaceHolder> 这个容器里面
----------------------------------
在内容页...
加过容器了,但是取不到TextBox...
txt = (TextBox)((MasterPage)Master).FindControl("main").FindControl("txtItem" + tt.ToString());
txt为空..
TextBox txt; for (int i =0; i < tb.Rows.Count;i++ )
{
string ItemName= tb.Rows[i]["ItemName"].ToString();
txt = Master.FindControl("main").FindControl("txtItem" + (i+1).ToString()) as TextBox; if (txt != null)
{
txt.Text = ItemName;
}
}
最后的代码如下:
txt = Master.Master.FindControl("ContentPlaceHolder1").FindControl("main").FindControl("txtItem" + (i + 1).ToString()) as TextBox;