在下面的代码中,使用DIV标签,转发器只显示从数据库中检索到的第一条记录。删除DIV标记mbody
一切正常。但为了调整脚本的格式,我开始使用这个DIV标签,但我无法查看添加记录。请检查错误的位置。
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:Timer ID="Timer1" runat="server" ontick="Timer1_Tick" Interval="1000" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger controlid="Timer1" eventname="Tick" />
</Triggers>
<ContentTemplate>
<asp:Repeater ID="Shout_Box" runat="server">
<ItemTemplate><div id="mbody">
<%# DataBinder.Eval(Container.DataItem, "Message") %>
</div> </ItemTemplate>
</asp:Repeater><div id="sbox_button">
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /></div>
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" runat="server">
<ContentTemplate><div id="sb_text"><asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Wrap="true" Width="400" Height="60" /></div></ContentTemplate>
</asp:UpdatePanel>
在上面的代码1转发器中,使用了1个按钮和1个文本框。通过向文本框添加文本并单击按钮,文本框的值将转到数据库并使用计时器进行检索。这个脚本是一种聊天脚本。但是使用DIV标签我无法显示所有记录: - (
服务器端代码
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Timer1_Tick(object sender, EventArgs e)
{
string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=chatserver;" + "UID=root;" + "PASSWORD=*****;" + "OPTION=3";
OdbcConnection MyConnection = new OdbcConnection(MyConString);
try
{
MyConnection.Open();
OdbcCommand cmd = new OdbcCommand("Select message from shoutbox", MyConnection);
OdbcDataReader dr = cmd.ExecuteReader();
ArrayList values = new ArrayList();
while (dr.Read())
{
string ep = dr[0].ToString();
values.Add(new PositionData(ep));
Shout_Box.DataSource = values;
Shout_Box.DataBind();
}
TextBox1.Text = "";
}
catch
{
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string MyConString = "DRIVER={MySQL ODBC 3.51 Driver};" + "SERVER=localhost;" + "DATABASE=chatserver;" + "UID=root;" + "PASSWORD=*****;" + "OPTION=3";
OdbcConnection MyConnection = new OdbcConnection(MyConString);
OdbcCommand cmd = new OdbcCommand("INSERT INTO shoutbox(name, message)VALUES(?, ?)", MyConnection);
cmd.Parameters.Add("@email", OdbcType.VarChar, 255).Value = "tick";
cmd.Parameters.Add("@email", OdbcType.Text).Value = TextBox1.Text;
MyConnection.Open();
cmd.ExecuteNonQuery();
MyConnection.Close();
TextBox1.Text = string.Empty;
UpdatePanel2.Update();
}
答案 0 :(得分:0)
将数据绑定移出while循环:
while (dr.Read())
{
string ep = dr[0].ToString();
values.Add(new PositionData(ep));
}
Shout_Box.DataSource = values;
Shout_Box.DataBind();
读取每个值后绑定数据没有任何意义。