Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将dataset或datatable行设置为取自gridview文本框条目的值?_C#_Asp.net_Gridview - Fatal编程技术网

C# 如何将dataset或datatable行设置为取自gridview文本框条目的值?

C# 如何将dataset或datatable行设置为取自gridview文本框条目的值?,c#,asp.net,gridview,C#,Asp.net,Gridview,我有以下代码: 受保护的void GridView4\u行命令(对象发送方,GridViewCommandEventArgs e) { if(e.CommandName==“updateCommand”) { 如果(iPostBack) { 数据集EditT=新数据集(); 数据集ValidT=新数据集(); 数据行; 如果(会话[“编辑”]!=null) { EditT=(数据集)会话[“编辑”]; } 如果(会话[“有效”]!=null) { ValidT=(数据集)会话[“有效”]; }

我有以下代码:

受保护的void GridView4\u行命令(对象发送方,GridViewCommandEventArgs e)
{
if(e.CommandName==“updateCommand”)
{
如果(iPostBack)
{
数据集EditT=新数据集();
数据集ValidT=新数据集();
数据行;
如果(会话[“编辑”]!=null)
{
EditT=(数据集)会话[“编辑”];
}
如果(会话[“有效”]!=null)
{
ValidT=(数据集)会话[“有效”];
}
DataTable dtEdit=EditT.Tables[0];
DataTable dtValid=ValidT.Tables[0];
GridViewRow gvr=(GridViewRow)((LinkButton)e.CommandSource.NamingContainer);
int RowIndex=gvr.RowIndex;
row=dtEdit.Rows[RowIndex];
//------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------
//必须能够使用此处Gridview4文本框中的值更新EditT或dtEdit
//------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------
dtValid.Rows.Add(row.ItemArray);
dtEdit.Rows[RowIndex].Delete();
GridView4.DataSource=EditT;
GridView5.DataSource=ValidT;
GridView4.DataBind();
GridView5.DataBind();
}
}

}
使用此代码。也许这就是你需要的

string txtName=((TextBox)GridView4.Rows[RowIndex].FindControl(“textBox1”).Text;
字符串txtEmail=((TextBox)GridView4.Rows[RowIndex].FindControl(“TextBox 2”)).Text;
字符串txtMobile=((文本框)GridView4.Rows[RowIndex].FindControl(“文本框3”)).Text;
if(txtName!=null){
EditT.Tables[0]。行[RowIndex][“Name”]=txtName;
}
if(txtEmail!=null){
EditT.Tables[0]。行[RowIndex][“Email”]=txtEmail;
}
if(txtMobile!=null){
EditT.Tables[0]。行[RowIndex][“Mobile”]=txtMobile;

}
您的代码可以工作,您只需要更新onrow\u命令方法

在这种方法中,您可以获得编辑的行及其所有文本框值,然后根据需要使用它。(例如,在已验证的数据表中添加新行)


向您展示gridview.asp代码:)抱歉,忘记添加它了。Lol我不确定是否应该提及数据是从Excel文件上载的,如果需要此代码来帮助获得答案,我不这样认为,我会看一看并尝试一些东西,gl!谢谢你,我真的很感激!加入stackoverflow只有3天了,我必须说这是一个很棒的社区!
protected void GridView4_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "UpdateGCommand")
        {
            if (IsPostBack)
            {




                GridViewRow gvr = (GridViewRow)(((LinkButton)e.CommandSource).NamingContainer);
                int RowIndex = gvr.RowIndex;
                GridViewRow row = GridView4.Rows[RowIndex];

                //Actual edited values for this row

                //Name
                string name = ((TextBox)row.FindControl("textBox1")).Text.ToString();

                //Mail
                string mail = ((TextBox)row.FindControl("textBox2")).Text.ToString();

                //Mobile
                string mobile = ((TextBox)row.FindControl("textBox3")).Text.ToString();

                // Here you have all the edited row informations, you can do whatever you want with it
            }

        }
    }