读书人

在girdview 中小弟我这样写的 如何获取

发布时间: 2012-10-07 17:28:51 作者: rapoo

在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> 

读书人网 >ASP

热点推荐