将数据显示到gridview中 [英] Displaying data into gridview
问题描述
我的设计如下
离开类型ddlleavetype
从日期txtdate(文本框)
到期日txttodate(文本框)
应用日期txtapplied(文本框)
原因txtReason(文本框)
i我在上面显示下拉列表和文本框值到gridview
我的代码如下
protected void btnview_Click(object sender,EventArgs e)
{
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn(LeaveType);
DataColumn dc2 = new DataColumn(FromDate);
DataColumn dc3 = new DataColumn(ToDate);
DataColumn dc4 = new DataColumn(AppliedOn );
DataColumn dc5 = new DataColumn(Reason);
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3) ;
dt.Columns.Add(dc4);
dt.Columns.Add(dc5);
DataRow dr1 = dt.NewRow();
dr1 [LeaveType] = ddlleavetype.SelectedValue.ToString();
dr1 [FromDate] = txtDate。文字;
dr1 [ToDate] = txttodate.Text;
dr1 [AppliedOn] = txtapplied.Text;
dr1 [ Reason] = txtreason.Text;
dt.Rows.Add(dr1);
GridView1.DataSource = dt;
GridView1。 DataBind();
}
当我点击按钮运行上面的代码时,
在gridview文本框值中未显示在gridview中。它在gridview中显示为空。
我的上述代码中的错误是什么
我尝试了什么:
。
假设你的TextBox
和DropDown
控件在GridView之外。下面是一个如何根据服务器控件值在GridView
中添加行的示例:
ASPX
< asp:TextBox ID = TextBox1 runat = server / >
< asp:TextBox ID = TextBox2 runat = server / >
< span class =code-keyword>< asp:TextBox ID = TextBox3 runat = server / >
< ; asp:按钮 ID = Button1 runat = server 文本 = 按钮 OnClick = Button1_Click / >
< asp:GridView < span class =code-attribute> ID = GridView1 runat = server >
< / asp:GridView >
背后的代码:
// 一种方法将基于TextBox
// 值绑定GridView并在帖子后面保留其值。
private void BindGrid( int rowcount)
{
DataTable dt = new DataTable();
DataRow博士;
dt.Columns.Add( new System.Data.DataColumn( TextBox1Column, typeof ( String )));
dt.Columns.Add( new System.Data.DataColumn( TextBox2Column, typeof ( String )));
dt.Columns.Add( new System.Data.DataColumn( TextBox3Column, typeof ( String )));
if (ViewState [ CurrentData]!= null )
{
for ( int i = 0 ; i < rowcount + 1 ; i ++)
{
dt =(DataTable)ViewState [ CurrentData];
if (dt.Rows.Count > 0 )
{
dr = dt.NewRow();
dr [ 0 ] = dt.Rows [ 0 ] [ 0 跨度>]的ToString();
}
}
dr = dt.NewRow();
dr [ 0 ] = TextBox1.Text;
dr [ 1 ] = TextBox2.Text;
dr [ 2 ] = TextBox3.Text;
dt.Rows.Add(dr);
}
else
{
dr = dt.NewRow();
dr [ 0 ] = TextBox1.Text;
dr [ 1 ] = TextBox2.Text;
dr [ 2 ] = TextBox3.Text;
dt.Rows.Add(dr);
}
// 如果ViewState有数据则使用值为DataSource
如果(ViewState [ CurrentData]!= null )
{
GridView1.DataSource =(DataTable)ViewState [< span class =code-string> CurrentData];
GridView1.DataBind();
}
其他
{
// < span class =code-comment>使用DataTable中关联的初始数据绑定GridView
GridView1.DataSource = dt;
GridView1.DataBind();
}
// 将DataTable存储在ViewState中以保留值
ViewState [ CurrentData] = dt;
}
受保护 void Button1_Click(< span class =code-keyword> object sender,EventArgs e)
{
// 检查ViewState是否有相关的数据。如果
if (ViewState [ CurrentData]!= null )
{
DataTable dt =(DataTable)ViewState [ CurrentData];
int count = dt.Rows.Count;
BindGrid(伯爵);
}
其他
{
BindGrid( 1 );
}
TextBox1.Text = string .Empty;
TextBox1.Focus();
}
如果您的服务器控件在GridView中并且您想要动态生成行,那么这是一个完整的步骤 - 我几年前写的一个例子: 一> https://www.codeproject.com/Articles/1109899/Dynamically-Adding-and-Deleting-Rows-in-GridView-a
My Design as follows
Leave Type ddlleavetype
From Date txtdate (textbox)
To Date txttodate (textbox)
Applied date txtapplied (textbox)
Reason txtReason (textbox)
i am displaying above dropdownlist and textbox value to gridview
My code as follows
protected void btnview_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
DataColumn dc1 = new DataColumn("LeaveType");
DataColumn dc2 = new DataColumn("FromDate");
DataColumn dc3 = new DataColumn("ToDate");
DataColumn dc4 = new DataColumn("AppliedOn");
DataColumn dc5 = new DataColumn("Reason");
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Columns.Add(dc4);
dt.Columns.Add(dc5);
DataRow dr1 = dt.NewRow();
dr1["LeaveType"] = ddlleavetype.SelectedValue.ToString();
dr1["FromDate"] = txtDate.Text;
dr1["ToDate"] = txttodate.Text;
dr1["AppliedOn"] = txtapplied.Text;
dr1["Reason"] = txtreason.Text;
dt.Rows.Add(dr1);
GridView1.DataSource = dt;
GridView1.DataBind();
}
when i run the above above code when i click the button,
in gridview textbox values not showing in gridview. It shows the empty in gridview.
What is the mistake in my above code
What I have tried:
.
Assuming that yourTextBox
andDropDown
controls are outside GridView. Here's an example how to add rows inGridView
based from server control values:
ASPX
<asp:TextBox ID="TextBox1" runat="server"/> <asp:TextBox ID="TextBox2" runat="server"/> <asp:TextBox ID="TextBox3" runat="server"/> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> <asp:GridView ID="GridView1" runat="server" > </asp:GridView>
CODE BEHIND:
//A method that will bind GridView based on the TextBox //values and retain its values on post backs. private void BindGrid(int rowcount) { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new System.Data.DataColumn("TextBox1Column", typeof(String))); dt.Columns.Add(new System.Data.DataColumn("TextBox2Column", typeof(String))); dt.Columns.Add(new System.Data.DataColumn("TextBox3Column", typeof(String))); if (ViewState["CurrentData"] != null) { for (int i = 0; i < rowcount + 1; i++) { dt = (DataTable)ViewState["CurrentData"]; if (dt.Rows.Count > 0) { dr = dt.NewRow(); dr[0] = dt.Rows[0][0].ToString(); } } dr = dt.NewRow(); dr[0] = TextBox1.Text; dr[1] = TextBox2.Text; dr[2] = TextBox3.Text; dt.Rows.Add(dr); } else { dr = dt.NewRow(); dr[0] = TextBox1.Text; dr[1] = TextBox2.Text; dr[2] = TextBox3.Text; dt.Rows.Add(dr); } // If ViewState has a data then use the value as the DataSource if (ViewState["CurrentData"] != null) { GridView1.DataSource = (DataTable)ViewState["CurrentData"]; GridView1.DataBind(); } else { // Bind GridView with the initial data assocaited in the DataTable GridView1.DataSource = dt; GridView1.DataBind(); } // Store the DataTable in ViewState to retain the values ViewState["CurrentData"] = dt; } protected void Button1_Click(object sender, EventArgs e) { // Check if the ViewState has a data assoiciated within it. If if (ViewState["CurrentData"] != null) { DataTable dt = (DataTable)ViewState["CurrentData"]; int count = dt.Rows.Count; BindGrid(count); } else { BindGrid(1); } TextBox1.Text = string.Empty; TextBox1.Focus(); }
In case your server controls are within GridView and you want to generate rows dynamically, then here's a complete step-by-step example that I wrote a few years ago: https://www.codeproject.com/Articles/1109899/Dynamically-Adding-and-Deleting-Rows-in-GridView-a
这篇关于将数据显示到gridview中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!