我通过一个按钮来创建一些指定ID的文本框,然后输入一些内容,可是一点击保存的时候我用findcontorl根本就找到所对应id的控件,我看了一下执行过程,他好像先post一下,然后执行Load等事件,再执行我按钮中的代码.
请问有没有什么方法让其保存其控件并保存控件的值?在网上查了相关文章,有用viewstate的,有用在Load事件加载的, 可是好像都不能实现我的功能.
请问有没有什么方法让其保存其控件并保存控件的值?在网上查了相关文章,有用viewstate的,有用在Load事件加载的, 可是好像都不能实现我的功能.
解决方案 »
- 【求WEB即时通讯解决方案】
- 关于数据库设计的问题,请指点一下!
- SQLServer中的Money,Real类型,分别对应该.net中的什么类型?
- 怎样判断DataTable是否有某行数据,怎样从DataTable中删除某行
- Datagrid显示数据的问题(初学者,请多帮忙)
- DropDownList 问题 有点难
- 动态添加的dropdownlist的SelectedIndexChanged不执行
- 如何实现显示在线人员的功能?(象QQ那样)
- 使用Ajax.dll 导致不能触发 Global.asax 中的Application_Error
- 求救:有没有什么方法把datagrid的其中一列中的某几行合并成一行
- aspx中通过post传值并转移到另一个画面的问题
- 请问哪里有免费的文本编辑控件下载!
{
//动态产生或装载控件
//也许需要连接控件事件处理函数
//加到父控件的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
这篇文章详细的介绍了如何以及何时动态创建控件。
if (this.IsPostBack)
{
if (Request.Form["__EVENTTARGET"].ToString() != "myPager")
{
DetailDataGrid_Refresh();
StatDataGrid_Refresh();
}
}
//动态产生或装载控件if (!IsPostBack)