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

在girdview 中小弟我这样写的 如何获取不到textbox的值 用findcontal

2012-10-07 
在girdview 中我这样写的 怎么获取不到textbox的值用findcontal问题就是在后台处理的时候就是找不到textbo

在girdview 中我这样写的 怎么获取不到textbox的值 用findcontal
问题就是在后台处理的时候就是找不到textbox的值 ,用this.textbid 也是找不到的 ,,求大神们想想办法

asp代码如下:
<asp:GridView ID="GridView5" runat="server" Width="100%" AutoGenerateColumns="False"
  BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"
  CellPadding="3">
  <Columns>
  <asp:TemplateField>
  <HeaderTemplate>
  <asp:Label ID="Label32" runat="server" Text="五、简答题">
  </asp:Label>
  </HeaderTemplate>
  <ItemTemplate>
  <table id="Table6" cellspacing="1" cellpadding="1" width="100%" align="center" border="0">
  <br>
  <tr>
  <td>
  <asp:Label ID="Label18" runat="server" Text='<%# Container.DataItemIndex+1 %>'>
  </asp:Label>
  <%--《试题题目》--%>
  <asp:Label ID="Label19" runat="server" Text='<%# Eval("ques_text") %>'>
  </asp:Label>
  (本题得分:<asp:TextBox ID="short_score" runat="server"></asp:TextBox>
  <%--<asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server" ControlToValidate="short_score"
  ValidationExpression="^\d+$" ErrorMessage="只能为正整数或0" Display="dynamic"></asp:RegularExpressionValidator>
  <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="不能为空"
  ControlToValidate="short_score" Display="dynamic"></asp:RequiredFieldValidator>)--%>
  <br />
  <%--《考生答案》--%>
  <asp:TextBox ID="TextBox2" Enabled="false" runat="server" TextMode="multiLine" ReadOnly="true"
  Width="100%" Text='<%# Eval("short_stu_answer") %>'></asp:TextBox>
  <%--《本题分值》--%>
  本题分值:<asp:Label ID="Label21" runat="server" Text='<%# Eval("short_scores") %>'></asp:Label>分
  </td>
  </tr>
  <tr>
  <td>
  参考答案:
  <br />


  <asp:TextBox ID="TextBox3" runat="server" TextMode="multiLine" Width="100%" Height="60px"
  ReadOnly="true" Text='<%#Eval("answer") %>'></asp:TextBox>
  </td>
  </tr>
  </table>
  </ItemTemplate>
  </asp:TemplateField>
  </Columns>
  <HeaderStyle Font-Size="12pt" HorizontalAlign="Left" />
  </asp:GridView>



我在后台处理的代码如下:
 for (int k = 0; k <GridView5.Rows.Count ; k++)
  {
//获得试题id
  string sql_shorts = "select * from exam_paper_info_child where exam_code='" + exam_code + "' and text_type='应用题'";
  DataTable dt_short = SqlHelper.ExecuteTable(sql_shorts);
  //找到id为short_score的textbox值
  text = GridView5.Rows[k].FindControl("short_score") as TextBox;
  for (int i = 0; i < dt_short.Rows.Count; i++)
  {
   
  int grade = Convert.ToInt32(text.Text);
//开始更新
  string sql_short = "update short_answer_chile set short_resoult=@short_resoult where exam_code=@exam_code and short_id=@short_id";
  SqlParameter[] paramd = new SqlParameter[] 
  {
  new SqlParameter("@short_resoult",grade),
  new SqlParameter("@exam_code",exam_code),
  new SqlParameter("@short_id",dt_short.Rows[i]["text_code"].ToString())
  };
  if (SqlHelper.ExecuteUpdate(sql_short, paramd) > 0)
  {
  MessageBox.Show("成功",1);
  } MessageBox.Show("失败",1);
  }
   
  }

[解决办法]
是完全可以的,你可以使用下面的代码测试
直接拷贝粘贴成a.aspx,浏览

HTML code
<%@ Page Language="C#" EnableViewState="true" AutoEventWireup="true" %><%@ Import Namespace="System.Xml" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">    protected void Page_Load(object sender, EventArgs e)    {        if (!Page.IsPostBack)        {            System.Data.DataSet ds = new System.Data.DataSet();            System.Data.DataTable dataTable1 = new System.Data.DataTable("BlogUser");            System.Data.DataRow dr;            dataTable1.Columns.Add(new System.Data.DataColumn("UserId", typeof(System.Int32)));            dataTable1.Columns.Add(new System.Data.DataColumn("UserName", typeof(System.String)));            dr = dataTable1.Rows.Add(new Object[] { 1, "【孟子E章】" + 1.ToString() });            dr = dataTable1.Rows.Add(new Object[] { 2, "【孟子E章】" + 2.ToString() });            dr = dataTable1.Rows.Add(new Object[] { 3, "【孟子E章】" + 3.ToString() });            dr = dataTable1.Rows.Add(new Object[] { 4, "【孟子E章】" + 4.ToString() });            dr = dataTable1.Rows.Add(new Object[] { 5, "【孟子E章】" + 5.ToString() });            GridView1.DataSource = dataTable1;            GridView1.DataBind();        }    }    protected void Button1_Click(object sender, EventArgs e)    {        for (int k = 0; k < GridView1.Rows.Count; k++)        {            TextBox textBox1 = GridView1.Rows[k].FindControl("TextBox1") as TextBox;            Response.Write("<li>" + textBox1.Text);        }    }</script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <title>dddd</title></head><body>    <form id="form1" runat="server">    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">        <Columns>            <asp:TemplateField>                <HeaderTemplate>                    输入                </HeaderTemplate>                <ItemTemplate>                    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>                </ItemTemplate>            </asp:TemplateField>        </Columns>    </asp:GridView>    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />    </form></body></html> 

热点排行