佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1228|回复: 9

关于asp.net data grid 的问题,希望有人能帮我

[复制链接]
发表于 12-4-2008 04:33 PM | 显示全部楼层 |阅读模式
我把一column data convert 去 item template, 变去 text box 了,然后enable = false,
过后我又加个button,
要怎样才能用button  把data grid 里面的text box 变去enable = true?   或怎样才能拿到那个text box 的ID ?
谁可以帮我解答?谢谢
回复

使用道具 举报


ADVERTISEMENT

发表于 12-4-2008 07:27 PM | 显示全部楼层
如果只是把button 弄 enabled 的话,其实不需要在 postback 回 后台。。
用javascript 就可以了。。 你可以view src 看asp.net 把那些 textbox assign 了什么 dom 的id , 然后 用 javascript 的 getelementbyid , 然后换它的 property 就可以了。
回复

使用道具 举报

 楼主| 发表于 12-4-2008 07:50 PM | 显示全部楼层
我不会java......
回复

使用道具 举报

发表于 2-7-2008 06:52 PM | 显示全部楼层
最好是用javascript来control
不然如果很多data的话,会很慢

首先用
document.getElementByTagName("input")
然后loop through 这些input , 找出type = text
when it is found, then set to disabled
回复

使用道具 举报

发表于 3-7-2008 03:41 AM | 显示全部楼层
我以GridView演示以下功能。DataGrid的应用方法相同。

首先,假设我的ASPX文件有以下的GridView

  1. <asp:GridView ID="grvMyGridView" runat="server" AutoGenerateColumns="False" DataKeyNames="QuestionID"
  2.         DataSourceID="odsMyGridView">
  3.         <Columns>
  4.             <asp:TemplateField>
  5.                 <ItemTemplate>
  6.                     <asp:TextBox ID="txtMyTextBox" runat="server" Enabled="false"></asp:TextBox>
  7.                 </ItemTemplate>
  8.             </asp:TemplateField>
  9.             <asp:TemplateField>
  10.                 <ItemTemplate>
  11.                     <asp:Button ID="btnEnableTextBox" runat="server" Text="Enable Textbox" OnCommand="EnableTextBox" />
  12.                 </ItemTemplate>
  13.             </asp:TemplateField>
  14.         </Columns>
  15.     </asp:GridView>
复制代码


现在在Code-Behind, 用以下的Code找出指定TextBox所在的的GridViewRow的Index


  1. Protected Sub grvMyGridView_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grvMyGridView.RowDataBound
  2.         If e.Row.RowType = DataControlRowType.DataRow Then
  3.             Dim intRowIndex As Integer = e.Row.RowIndex
  4.             Dim btnEnableTextbox As Button = e.Row.Cells(1).FindControl("btnEnableTextbox")
  5.             btnEnableTextbox.CommandArgument = intRowIndex.ToString
  6.         End If
  7. End Sub
复制代码


注意以上的Code:
1. e.Row.RowIndex是找出每一个Row的Index.
2. e.Row.Cells(ColumnNumber)是找出你的Button的位置。从0 算起。我的Button在第二个Column, 所以Index是1。
3. 找出Button后, 把Button的CommandArgument的值设定成在第一步所找出的RowIndex。

下来,我们要对于每一个Button的OnCommand Event做出反应。


  1. Protected Sub EnableTextbox(ByVal sender As Object, ByVal e As CommandEventArgs)
  2.         Dim intRowIndex As Integer = CInt(e.CommandArgument)
  3.         Dim objRow As GridViewRow = grvMyGridView.Rows(intRowIndex)
  4.         Dim txtMyTextBox As TextBox = objRow.FindControl("txtMyTextBox")
  5.         txtMyTextBox.Enabled = True
  6. End Sub
复制代码


注意以上的Code:
1. EnableTextBox 是在ASPX文件里对于Button所设定的OnCommand的名字。整个Sub是对于Button的OnCommand做出反应,或者叫做Event Handler。
2. 用e.CommandArgument把之前对于Button设定的RowIndex的值重新读出来。
3. 找出TextBox后,把它的Enable设定成True。

希望我的解释还清楚。
回复

使用道具 举报

发表于 18-7-2008 02:00 AM | 显示全部楼层

回复 5# wooncherk 的帖子

不好意思突然插进来!可以把 code-behind 换成 c# 吗? 我的vb很烂,不太明白。
回复

使用道具 举报

Follow Us
发表于 20-7-2008 11:09 AM | 显示全部楼层

回复 6# dek 的帖子

不好意思... 我的C#也很烂... 尝试了一下... 不知道能run吗... 我还没测试... 希望没问题...
  1. protected void grvMyGridView_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)
  2. {
  3.     if (e.Row.RowType == DataControlRowType.DataRow) {
  4.         int intRowIndex = e.Row.RowIndex;
  5.         Button btnEnableTextbox = e.Row.Cells(1).FindControl("btnEnableTextbox");
  6.         btnEnableTextbox.CommandArgument = intRowIndex.ToString;
  7.     }
  8. }
复制代码
  1. protected void EnableTextbox(object sender, CommandEventArgs e)
  2. {
  3.     int intRowIndex = (int)e.CommandArgument;
  4.     GridViewRow objRow = grvMyGridView.Rows(intRowIndex);
  5.     TextBox txtMyTextBox = objRow.FindControl("txtMyTextBox");
  6.     txtMyTextBox.Enabled = true;
  7. }
复制代码
回复

使用道具 举报

发表于 29-7-2008 11:54 AM | 显示全部楼层

回复 7# wooncherk 的帖子

都记下了,谢谢。在做别的,还没时间试你的 code
回复

使用道具 举报


ADVERTISEMENT

发表于 1-8-2008 03:45 PM | 显示全部楼层

回复 8# dek 的帖子

不谢。有空来看看我的新网站吧。也是关于Programming的。之前在这里有介绍了。网址是: http://malaysiacoder.com/
回复

使用道具 举报

发表于 7-9-2008 04:49 PM | 显示全部楼层
原来还有把row index丢去command argument的方法, 谢谢wooncherk的分享.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-12-2025 04:30 AM , Processed in 0.132586 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表