在gridview的RowDataBound事件中,动态的把编辑行的默认textbox换成dropdownlist,但点“更新”后取不到dropdownlist的值,哪位大侠遇到过,如何解决?
解决方案 »
- asp(c#) lyfupload 使用方法。
- 大家有没有类似这样的系统
- 错误类型:Microsoft Office Access Database Engine (0x80040E14)INSERT INTO 语句的语法错误。
- 如何将页面导出到Word?
- GridView的第一列是ButtonField,字段名是"删除",想一点之后弹出确认框,否则返回.应该如何写?
- ASP.NET2.0中TreeView节点被选中即被点击的时候触发的是什么事件?
- 请问www.gov.cn网站左边的“本网首页、今日中国、中国概况等”是个什么控件?
- 请教大家一个Datagrid排序的问题。在页面中事先写好列就可以排序,如果用代码填加列就不能排序,这是为什么,怎么解决?
- 提示"找不到用来和frontpage服务器通信的组件"
- DataGrid的二个列的EditItemTemplate里绑有DropDownList的问题。
- sql2005装不上服务
- 兄弟们现在做企业级开发时数据访问层用NHibernate 还是Castle 还是就用Linq?
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class edit2 : System.Web.UI.Page
{
private SqlConnection conn;
private SqlCommand comm;
private SqlDataAdapter a; protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack)
{
dsBind();
TextBox1.Text = "";
} } private void dsBind()
{
GridView1.Visible = true;
GridView1.DataSource = getDS();
GridView1.DataBind();
} private DataSet getDS()
{
string conn_string = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ToString(); conn = new SqlConnection(conn_string);
comm = new SqlCommand();
comm.CommandType = CommandType.Text;
comm.CommandText = "select CustomerID, CompanyName, ContactName, ContactTitle from customers --where CustomerID='ssssssssssss'";
comm.Connection = conn; conn.Open();
a = new SqlDataAdapter();
a.SelectCommand = comm; DataSet ds = new DataSet();
a.Fill(ds); a.Dispose();
comm.Dispose();
conn.Close(); return ds;
} protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
dsBind();
} protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
dsBind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
dsBind();
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow && (e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit)
{
GridViewRow row = e.Row;
for (int index = 1; index < row.Cells.Count; ++index)
{
if (GridView1.HeaderRow.Cells[index].Text == "CompanyName")
{
row.Cells[index].Controls.Clear(); //清除编辑行的CompanyName列默认的textbox // DropDownList d = new DropDownList();
TextBox d = new TextBox();
d.Attributes.Add("size", "4"); row.Cells[index].Controls.AddAt(0, d); //为编辑行的CompanyName列重新添加textbox
}
}
} }
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = GridView1.Rows[e.RowIndex];
for (int index = 1; index < row.Cells.Count; ++index)
{ foreach (Control control in row.Cells[index].Controls)
{
if (control is TextBox)
{
TextBox3.Text = TextBox3.Text + "," + ((TextBox)control).Text; //CompanyName列的textbox取不到值
}
}
} GridView1.EditIndex = -1;
dsBind();
}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
// Response.Write("xxxxxxxxxxxxxxxxxxx");
if (e.CommandName == "insert")
{
GridViewRow row = GridView1.FooterRow;
TextBox3.Text = TextBox3.Text + "##" + ((TextBox)row.Cells[1].Controls[0]).Text;
}
else
{
TextBox3.Text = "???????????";
}
}
}
///edit2.aspx<%@ Page Language="C#" AutoEventWireup="true" CodeFile="edit2.aspx.cs" Inherits="edit2" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<link href="ttttt.css" rel="stylesheet" type="text/css" />
</head>
<body><center>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="10" OnPageIndexChanging="GridView1_PageIndexChanging" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="3" AutoGenerateEditButton="True" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCreated="GridView1_RowCreated" OnRowDataBound="GridView1_RowDataBound" OnRowCommand="GridView1_RowCommand" ShowFooter="True">
<PagerSettings Position="TopAndBottom" Mode="NumericFirstLast" />
<RowStyle ForeColor="#000066" />
<FooterStyle BackColor="White" ForeColor="#000066" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
<!--
<asp:GridView ID="GridView11" runat="server" AllowPaging="True" PageSize="10" OnPageIndexChanging="GridView1_PageIndexChanging" AutoGenerateEditButton="True" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" OnRowCreated="GridView1_RowCreated" OnRowDataBound="GridView1_RowDataBound" OnRowCommand="GridView1_RowCommand" ShowFooter="True" CssClass="GridViewStyle">
<PagerSettings Position="TopAndBottom" Mode="NumericFirstLast" />
<FooterStyle CssClass="FooterStyle" />
<RowStyle CssClass="RowStyle" />
<EmptyDataRowStyle CssClass="EmptyRowStyle" />
<PagerStyle CssClass="PagerStyle" />
<SelectedRowStyle CssClass="SelectedRowStyle" />
<HeaderStyle CssClass="HeaderStyle" />
<EditRowStyle CssClass="EditRowStyle" />
<AlternatingRowStyle CssClass="AltRowStyle" />
</asp:GridView>
-->
<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
</form></center>
</body>
</html>
GridViewRow row = GridView1.Rows[e.RowIndex];
1)普通列
(控件类型)GridViewRow.Cells[索引].Controls[索引]
2)模板列
(控件类型)GridViewRow.FindControl("控件ID")