VS2012怎么把dataGridView的数据更新到textbox中,点选时自动传到textbox中 140
我先把数据从TEXTBOX中绑定到dataGridView中去,当我点选dataGridView中的某个数据是,会自动覆盖当前textbox的值,我text有很多,这个应...
我先把数据从TEXTBOX中绑定到dataGridView中去,当我点选dataGridView中的某个数据是,会自动覆盖当前textbox的值,我text有很多,这个应该怎么做呢
这个textbox和datagriview不是在同一个form里面的 展开
这个textbox和datagriview不是在同一个form里面的 展开
3个回答
展开全部
在Gridview中添加一列为TemplateField列,添加inkButton控件,为linkbutton添加CommandArgument属性和CommandName属性值。
为gridview添加RowCommand事件,在该事件中获取该行的值,然后赋值。
代码如下:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px"
CellPadding="3" CellSpacing="2" onrowcommand="GridView1_RowCommand"
DataKeyNames="id">
<Columns>
<asp:BoundField DataField="id" HeaderText="1" />
<asp:BoundField DataField="sername" HeaderText="2" />
<asp:BoundField DataField="serCode" HeaderText="3" />
<asp:BoundField DataField="serIp" HeaderText="4" />
<asp:BoundField DataField="serCC" HeaderText="5" />
<asp:TemplateField HeaderText="编辑">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%# Eval("id") %>'
CommandName="editLine">编辑</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#FFF1D4" />
<SortedAscendingHeaderStyle BackColor="#B95C30" />
<SortedDescendingCellStyle BackColor="#F1E5CE" />
<SortedDescendingHeaderStyle BackColor="#93451F" />
</asp:GridView>
后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
source();
}
}
DataTable dt = null;
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("editLine"))
{
string id = e.CommandArgument.ToString();
/*这个是如果在同一个页面
string dd = ((System.Web.UI.WebControls.LinkButton)e.CommandSource).ClientID;
int rowIndex = int.Parse(dd.Substring(dd.LastIndexOf('_') + 1, 1));
string serName = GridView1.Rows[rowIndex].Cells[1].Text;
string serCode = GridView1.Rows[rowIndex].Cells[2].Text;
//以下就是获取行的其他值
.......................................
*/
//以下是如果不再同一个页面
Response.Redirect("infoDetails.aspx?serId=" + id );
//结束
}
}
public void source()
{
dtSource();//查询方法,为 dt 赋值
GridView1.DataSource = dt;
GridView1.DataBind();
}
/************************************* infoDetails.aspx *********************************************/
后台:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.QueryString["serId"]!=null)
{
Regex reg = new Regex("^[0-9]+$");
Match ma = reg.Match(Request.QueryString["serId"].ToString());
if (ma.Success)
{
int serId=Convert.ToInt32(Request.QueryString["serId"]);
ServiceInfo serInfo = ser.selectModelByID(serId);//为数据库查询方法
setControl(serInfo);//本页面的赋值方法
}
else
{
Response.Redirect("ServerinfoList.aspx");
}
}
}
}
///赋值方法
public void setControl(Serverinfo Model)
{
txtSerCode.Text = Model.serCode.ToString();
txtSerIP.Text = Model.serIP.ToString();
txtSerName.Text = Model.serName;
txtSerPwd.Text = Model.serLoginPwd;
}
为gridview添加RowCommand事件,在该事件中获取该行的值,然后赋值。
代码如下:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px"
CellPadding="3" CellSpacing="2" onrowcommand="GridView1_RowCommand"
DataKeyNames="id">
<Columns>
<asp:BoundField DataField="id" HeaderText="1" />
<asp:BoundField DataField="sername" HeaderText="2" />
<asp:BoundField DataField="serCode" HeaderText="3" />
<asp:BoundField DataField="serIp" HeaderText="4" />
<asp:BoundField DataField="serCC" HeaderText="5" />
<asp:TemplateField HeaderText="编辑">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%# Eval("id") %>'
CommandName="editLine">编辑</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
<FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
<HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
<PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
<RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
<SortedAscendingCellStyle BackColor="#FFF1D4" />
<SortedAscendingHeaderStyle BackColor="#B95C30" />
<SortedDescendingCellStyle BackColor="#F1E5CE" />
<SortedDescendingHeaderStyle BackColor="#93451F" />
</asp:GridView>
后台代码
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
source();
}
}
DataTable dt = null;
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.Equals("editLine"))
{
string id = e.CommandArgument.ToString();
/*这个是如果在同一个页面
string dd = ((System.Web.UI.WebControls.LinkButton)e.CommandSource).ClientID;
int rowIndex = int.Parse(dd.Substring(dd.LastIndexOf('_') + 1, 1));
string serName = GridView1.Rows[rowIndex].Cells[1].Text;
string serCode = GridView1.Rows[rowIndex].Cells[2].Text;
//以下就是获取行的其他值
.......................................
*/
//以下是如果不再同一个页面
Response.Redirect("infoDetails.aspx?serId=" + id );
//结束
}
}
public void source()
{
dtSource();//查询方法,为 dt 赋值
GridView1.DataSource = dt;
GridView1.DataBind();
}
/************************************* infoDetails.aspx *********************************************/
后台:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.QueryString["serId"]!=null)
{
Regex reg = new Regex("^[0-9]+$");
Match ma = reg.Match(Request.QueryString["serId"].ToString());
if (ma.Success)
{
int serId=Convert.ToInt32(Request.QueryString["serId"]);
ServiceInfo serInfo = ser.selectModelByID(serId);//为数据库查询方法
setControl(serInfo);//本页面的赋值方法
}
else
{
Response.Redirect("ServerinfoList.aspx");
}
}
}
}
///赋值方法
public void setControl(Serverinfo Model)
{
txtSerCode.Text = Model.serCode.ToString();
txtSerIP.Text = Model.serIP.ToString();
txtSerName.Text = Model.serName;
txtSerPwd.Text = Model.serLoginPwd;
}
展开全部
最好的办法是把你当前点中行的主键传过去,在另外一个界面中查询该条数据,然后绑定到textbox上
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-03-04
展开全部
textBox.Text=Convert.ToString(dataGridView1[0, dataGridView1.CurrentCell.RowIndex].Value)
textBox是你的textbox的ID 而dataGridView1是这个datagridview控件的ID
textBox是你的textbox的ID 而dataGridView1是这个datagridview控件的ID
追问
写在什么位置?就是写在什么事件下面?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询