首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

重金求解,该如何处理

2012-05-30 
重金求解问题:Page页面上有二个Button,一个Panel。其中Button1点击的时候,自动在Panel里添加5个文本框。在生

重金求解
问题:Page页面上有二个Button,一个Panel。其中Button1点击的时候,自动在Panel里添加5个文本框。在生成的5个文本框中输入数值后。 点击另外一个Button时候,弹出刚才输入文本框的值。
 
 

[解决办法]
protected void btn1_Click(object sender, EventArgs e)
{
for(int i=0;i<5;i++)
{
TextBox txt = new TextBox(); 
txt.ID = "txt_" + i.ToString(); 
Panel1.Controls.Add(txt); 
}
}

protected void btn2_Click(object sender, EventArgs e)
{
for(int i=0;i<5;i++)
{
TextBox txt=Panel1.FindControl("txt_" + i.ToString()) as TextBox;
if(txt!=null)
{}
}
}
[解决办法]
ClientScript.RegisterStartupScript(this.GetType(), "", "<script language='javascript' defer>alert('" +txt.Text + "');</script>");
[解决办法]
厉害加速度
不愧为答题机器人 呵呵
[解决办法]
因为动态生成的textbox在重新点击按钮后会消失,所以在页面上放置HiddenField1来保存textbox的值

HTML code
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />        <asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px">            </asp:Panel>        <asp:HiddenField ID="HiddenField1" runat="server" />        <asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" OnClientClick="saveValue();" /><script>function saveValue(){    var obj=document.getElementById("Panel1").getElementsByTagName("input");    for(var i=0;i<obj.length;i++)   {       if(obj.type="text")                document.getElementById("HiddenField1").value+=obj[i].value+",";   }     alert(document.getElementById("HiddenField1").value)}</script>
[解决办法]
我们只能跟随问答机器人后面接点分
SF都让他一个人占领了 速度太快
[解决办法]
我也来凑个热闹,企图获得重金!!
生成一个TextBox,多个依次类推,放一个Hidden1,中间变量

页面html
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
<asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="Button" OnClientClick="test()" />
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
<input id="Hidden1" type="hidden" runat="server" />

js:
<script type="text/javascript">
function test() {
document.getElementById("Hidden1").value = document.getElementById("myT1").value;
}
</script>

c#
protected void Button1_Click(object sender, EventArgs e)
{
this.sText();//动态生成TextBox
}
protected void Button2_Click(object sender, EventArgs e)
{
ViewState["t1"] = Hidden1.Value.ToString();//获得中间变量
this.sText();//动态生成TextBox
((TextBox)Panel1.FindControl("myT1")).Text = ViewState["t1"].ToString();//赋值
}

private void sText()
{
TextBox myT1 = new TextBox();
myT1.ID = "myT1";
Panel1.Controls.Add(myT1);
}
[解决办法]
探讨
protected void btn1_Click(object sender, EventArgs e)


{
for(int i=0;i <5;i++)
{
TextBox txt = new TextBox();
txt.ID = "txt_" + i.ToString();
Panel1.Controls.Add(txt);
}
}

protected void btn2_Click(object sender, EventArgs e)
{
for(int i=0;i <5;i++)
{
TextBox txt=Panel1.FindControl("txt_" + i.ToString()) as TextBox;
if(txt!=null)
  {}
}
}


[解决办法]
引用:
protected void btn1_Click(object sender, EventArgs e) 

for(int i=0;i <5;i++) 

TextBox txt = new TextBox(); 
txt.ID = "txt_" + i.ToString(); 
Panel1.Controls.Add(txt); 



protected void btn2_Click(object sender, EventArgs e) 

for(int i=0;i <5;i++) 

TextBox txt=Panel1.FindControl("txt_" + i.ToString()) as TextBox; 
if(txt!=null) 
{} 





修改: 

for(int i=0;i <5;i++) 

TextBox txt=Panel1.FindControl("txt_" + i.ToString()) as TextBox; 
if(txt!=null) 

txt.Text=HiddenField1.Value();//这里是五个隐藏组件,我代表性的写了一个。 

}
[解决办法]
4楼应该是对的,因为控件不是在page_load里产生的,所以要注意一个回传的问题.
[解决办法]
<asp:Panel ID="pnlTest" runat="server">
<input type="button" id="btnShowButtons" value="显示按钮" onclick="btnShowButtons_Click()" />
<asp:Button ID="btnShowValues" runat="server" Text="显示文本框值" />
<div id="ContainerForTXT" style="display:none">
<asp:TextBox ID="txt1" runat="server" /><br />
<asp:TextBox ID="txt2" runat="server" /><br />
<asp:TextBox ID="txt3" runat="server" /><br />
<asp:TextBox ID="txt4" runat="server" /><br />
<asp:TextBox ID="txt5" runat="server" />
</div>
</asp:Panel>
<script>
function btnShowButtons_Click()
{
document.getElementById("ContainerForTXT").style.display="block"
}
</script>
5个文本框不是动态的增加的,那最好控制<div>是否隐藏,至于取值弹出显示不难了吧?

热点排行