当前在线人数15635
首页 - 分类讨论区 - 电脑网络 - 窗口里的风景版 - 同主题阅读文章

此篇文章共收到打赏
0

  • 10
  • 20
  • 50
  • 100
您目前伪币余额:0
未名交友
[更多]
[更多]
关于dynamic textbox in gridview
[版面:窗口里的风景][首篇作者:AlbertLin] , 2015年08月19日13:09:25 ,499次阅读,12次回复
来APP回复,赚取更多伪币 关注本站公众号:
[分页:1 ]
AlbertLin
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 1 ]

发信人: AlbertLin (Albert Lin), 信区: DotNet
标  题: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Wed Aug 19 13:09:25 2015, 美东)

我有一个GridView,但是column多少不定,有的时候是几个,有的时候是N个。

我用DataTable保存从数据库返回的结果,这个DataTable的column个数不定,然后
DataBind到这个GridView上面。因为数据要update,所以GirdView里面基本上都是
TextBox。如图。












--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 66.]


此主题相关图片如下:

[删除]

 
AlbertLin
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 2 ]

发信人: AlbertLin (Albert Lin), 信区: DotNet
标  题: Re: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Wed Aug 19 13:10:16 2015, 美东)

Code:

1. create GirdView(里面什么都没有):

  <asp:GridView ID="gvPrice" runat="server" ShowFooter="true" OnRowDataBound
="gvPrice_RowDataBound"
                            ForeColor="#333333" AutoGenerateColumns="False"
EnableViewState="true">
    <Columns>
                    
    </Columns>   </asp:GridView>





--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 66.]

 
AlbertLin
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 3 ]

发信人: AlbertLin (Albert Lin), 信区: DotNet
标  题: Re: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Wed Aug 19 13:10:45 2015, 美东)

2. 从数据库拿我要的数据
DataTable dt = new DataTable("Price");

string connstring = ConfigurationManager.ConnectionStrings["ConnectionString
"].ConnectionString;

SqlConnection conn = new SqlConnection(connstring);

string query =“。。。。。。。。。”

SqlCommand comm = new SqlCommand(query, conn);
                SqlDataAdapter adapt = new SqlDataAdapter(comm);

                conn.Open();
                adapt.Fill(dt);
                conn.Close();
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 66.]

 
AlbertLin
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 4 ]

发信人: AlbertLin (Albert Lin), 信区: DotNet
标  题: Re: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Wed Aug 19 13:11:13 2015, 美东)

3. DataBind到GridView

for (int k = 0; k < dt.Columns.Count - 1; k++)
                {
                    if (k == 0)
                    {

                        BoundField tfield = new BoundField();
                        tfield.HeaderStyle.Width = Unit.Pixel(300);
                        tfield.HeaderText = dt.Columns[k].ColumnName;
                        tfield.DataField = dt.Columns[k].ColumnName;
                        gvPrice.Columns.Add(tfield);
                    }
                    else
                    {
                        TemplateField tfield = new TemplateField();
                        tfield.HeaderText = dt.Columns[k].ColumnName;

                        gvPrice.Columns.Add(tfield);
                    }
                }
  gvPrice.DataSource = dt;
                gvPrice.DataBind();
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 66.]

 
AlbertLin
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 5 ]

发信人: AlbertLin (Albert Lin), 信区: DotNet
标  题: Re: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Wed Aug 19 13:11:25 2015, 美东)

4. 做 OnRowDataBound

protected void gvPrice_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {

                string TDSPName = gvPrice.HeaderRow.Cells[i].Text;
                TextBox price = new TextBox();
                    price.ID = TDSPName.Replace(" ", "") + "Price";

                price.Text = "xxx";
                e.Row.Cells[i].Controls.Add(price);

             }
}

一切好像都没什么问题。

现在我想把所有TextBox里面的数据都存起来。


foreach (GridViewRow dr in gvPrice.Rows)
{
       TextBox tb = (TextBox)dr.FindControl(TDSPName.Replace(" ", "") + "
Price");
       。。。。。。。。
}

现在的问题是TextBox都是null。有人知道到底问题处在哪吗?谢谢
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 66.]

 
moar
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 6 ]

发信人: moar (阿穆斯特朗), 信区: DotNet
标  题: Re: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Wed Aug 19 19:51:39 2015, 美东)

你这个是ASPNET form吧。Textbox是动态生成的,没有在viewstate里面保存,
postback以后找不到的。
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 75.]

 
HorseKing
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 7 ]

发信人: HorseKing (For the Horde!), 信区: DotNet
标  题: Re: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Mon Aug 24 01:19:25 2015, 美东)

是否可以理解为有几个COLUMN就有几个TEXTBOX?

同一个DATATABLE里,有没有可能第一个ROW有5个COLUMN, 第2个ROW有3个?
--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 69.]

 
a9
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 8 ]

发信人: a9 (嗯), 信区: DotNet
标  题: Re: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Mon Aug 24 16:36:20 2015, 美东)

re.
不过现在还有用这种方式生成页面的?

【 在 moar (阿穆斯特朗) 的大作中提到: 】
: 标  题: Re: 关于dynamic textbox in gridview
: 发信站: BBS 未名空间站 (Wed Aug 19 19:51:39 2015, 美东)
:
: 你这个是ASPNET form吧。Textbox是动态生成的,没有在viewstate里面保存,
: postback以后找不到的。
: --
: ※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 75.]



--

※ 来源:·BBS 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 71.]

 
AlbertLin
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 9 ]

发信人: AlbertLin (Albert Lin), 信区: DotNet
标  题: Re: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Fri Sep  4 12:43:48 2015, 美东)

具体的说是每一行有几个column就有几个textbox。所以每一行的textbox个数都一样

【 在 HorseKing (For the Horde!) 的大作中提到: 】
: 是否可以理解为有几个COLUMN就有几个TEXTBOX?
: 同一个DATATABLE里,有没有可能第一个ROW有5个COLUMN, 第2个ROW有3个?



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 66.]

 
AlbertLin
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 10 ]

发信人: AlbertLin (Albert Lin), 信区: DotNet
标  题: Re: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Fri Sep  4 12:44:33 2015, 美东)


有更好的办法能告诉我吗?谢谢

【 在 a9 (嗯) 的大作中提到: 】
: re.
: 不过现在还有用这种方式生成页面的?



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 66.]

 
moar
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 11 ]

发信人: moar (阿穆斯特朗), 信区: DotNet
标  题: Re: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Sun Sep  6 15:26:43 2015, 美东)

现在都是MVC了,或者Web api加前端AngularJS生成的single page application。

你这个要自己去把动态生成的textbox保存到viewstate里,再送到浏览器端。postback
以后,.net根据送回来的viewstate重建control tree,才能把数据读出来。

【 在 AlbertLin (Albert Lin) 的大作中提到: 】
: 有更好的办法能告诉我吗?谢谢



--
※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 75.]

 
convergence
进入未名形象秀
我的博客
[回复] [回信给作者] [本篇全文] [本讨论区] [修改] [删除] [转寄] [转贴] [收藏] [举报] [ 12 ]

发信人: convergence (Rex), 信区: DotNet
标  题: Re: 关于dynamic textbox in gridview
发信站: BBS 未名空间站 (Wed Sep 16 20:55:41 2015, 美东)

对,现在都是server side把json送到front end,front end用angularjs之类的把json
给写在网页上。


【 在 moar (阿穆斯特朗) 的大作中提到: 】
: 现在都是MVC了,或者Web api加前端AngularJS生成的single page application。
: 你这个要自己去把动态生成的textbox保存到viewstate里,再送到浏览器端。
postback
: 以后,.net根据送回来的viewstate重建control tree,才能把数据读出来。



--
The person without sin can throw the first stone.

※ 来源:·WWW 未名空间站 网址:mitbbs.com 移动:在应用商店搜索未名空间·[FROM: 70.]

[分页:1 ]
[快速返回] [ 进入窗口里的风景讨论区] [返回顶部]
回复文章
标题:
内 容:

未名交友
将您的链接放在这儿

友情链接


 

Site Map - Contact Us - Terms and Conditions - Privacy Policy

版权所有,未名空间(mitbbs.com),since 1996