做了一个table,往其中加了一些textbox,本来打算点击一个确定的button,就保存我输入在这些textbox中的值在数据库中,但是奇怪的很,我调试的时候发现本来table.rows.count有4行的,点击确定后,先执行pageload,再执行确定button函数,在pageload函数的起始处table.rows.count就变为0,导致根本无法用table.rows[i].cell[j].txt循环读出数据,大家帮帮忙啊。
table是用控件拖放的形式放在asp.net页面中的。
table是用控件拖放的形式放在asp.net页面中的。
解决方案 »
- 采集新华网的新闻
- asp.net bin文件夹下dll如何重命名?
- 有两台服务器,我想把某台服务器上的一个文件移动到另一台服务器上去,怎么实现啊?
- 软件部署问题,大家都来帮忙!
- 请问:一般大家做网站都采用多层架构吗?
- Extjs下生成水晶报表 各位大虾们请多多指教
- "INSERT INTO 语句的语法错误",忙了一下午了就是找不出错误了,哪位路过的大哥帮帮忙,
- 『提一个有关存储过程的简单问题,在线等。谢谢!』
- 请问Asp.net怎么实现输出WORD格式的页面
- 请问一个有关模板列的问题
- 用window.open(),打开一个新窗口,如何让其大小与屏幕一般大小。不管它是多大分辨率的。
- 超级郁闷的两个问题,在一起提了.
模板技术支持下的这些控件操纵数据方便多了
{
//动态产生或装载控件
//也许需要连接控件事件处理函数
//加到父控件的Controls
}里生成或装载了动态控件。当控件在客户端触发,postback到服务器端时,IsPostBack==true,这些控件没有被重新生成,怎么能触发事件?所以答案是,当你需要动态生成或装载控件时,应该在if (!IsPostBack)之外做。我问为什么想在if (!IsPostBack)之内做呢?回答是想只生成一次,跟在ASPX页面里一样<form id="form1" runat=server>
<asp:Button id="Button1" runat="server" Text="Button1" OnClick="Button_Click"/>#%&%#&%^#&,你怎么会认为这个控件只生成一次呢?这些玩意也不是魔术,想生成一个Button对象,你需要用Button btn = new Button();需要触发它的Click事件,你需要用btn.Click += new EventHandler(YourHandler);即使象包含<asp:Button id="Button1" runat="server" Text="Button1" OnClick="Button_Click"/>的页面,它也是被转化成C#或VB文件,编译成assembly,然后再被执行的啊不信?加一个页面,TestControls.aspx:<%@ Page Debug="true" %>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.SqlClient"%><form id="form1" runat=server>
<asp:Button id="Button1" runat="server" Text="Button1" OnClick="Button_Click"/>
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="false" GridLines="Both">
<Columns>
<asp:TemplateColumn HeaderText="Name">
<ItemTemplate><%# DataBinder.Eval(Container.DataItem,"Name")%></ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
<script language="C#" runat="server">
void Button_Click(Object sender, EventArgs e)
{
Button btn = (Button)sender;
Response.Write(btn.Text + " is clicked<BR>");
}void Page_Load(Object sender, EventArgs e)
{
Button btn = new Button();
btn.ID = "Button2";
btn.Text = "Button2";
btn.Click += new EventHandler(Button_Click);
form1.Controls.Add(btn);
if (!IsPostBack)
{
SqlDataAdapter da = new SqlDataAdapter("select Name=au_fname + ' ' + au_lname from authors", "server=localhost;database=pubs;uid=sa;pwd=;");
DataTable dt = new DataTable();
da.Fill(dt);
DataGrid1.DataSource = dt.DefaultView;
DataGrid1.DataBind();
}
//}//这是故意的</script>把最后一个“}”注释掉,然后在浏览器里向你的服务器调用TestControls.aspx