本文介绍了如何从gridview的ItemTemplate访问数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我设计了一个网格视图
I have desing a gridview
<asp:GridView runat="server" ID="GridView1">
<Columns>
<asp:TemplateField HeaderText="Name" >
<ItemTemplate>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Code">
<ItemTemplate>
<asp:TextBox ID="txtCode" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Serial Number">
<ItemTemplate>
<asp:TextBox ID="txtSNo" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Internal Serial Number">
<ItemTemplate>
<asp:TextBox ID="txtISNo" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Internal Serial Number">
<ItemTemplate>
<asp:TextBox ID="txtWaranty" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Waranty">
<ItemTemplate>
<asp:TextBox ID="txtWStart" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Start">
<ItemTemplate>
<asp:TextBox ID="txtWEnd" runat="server">
</asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="End">
<ItemTemplate>
<asp:TextBox ID="txtStatus" runat="server">
</asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
并根据值添加行
And add rows depend upon value
int NoOfRows;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
NoOfRows = Convert.ToInt32((string)HttpContext.Current.Session["NoOfRows"]);
CreateGrid(NoOfRows);
}
}
internal void CreateGrid(int rows)
{
dt = new DataTable();
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Columns.Add(new DataColumn("Code", typeof(string)));
dt.Columns.Add(new DataColumn("Serial Number", typeof(string)));
dt.Columns.Add(new DataColumn("Internal Serial Number", typeof(string)));
dt.Columns.Add(new DataColumn("Waranty", typeof(string)));
dt.Columns.Add(new DataColumn("Start", typeof(string)));
dt.Columns.Add(new DataColumn("End", typeof(string)));
dt.Columns.Add(new DataColumn("Status", typeof(string)));
//Store the DataTable in ViewState
for (int i = 0; i < NoOfRows; i++)
{
dr = dt.NewRow();
dr["Name"] = NoOfRows.ToString();
dr["Code"] = string.Empty;
dr["Serial Number"] = string.Empty;
dr["Internal Serial Number"] = string.Empty;
dr["Waranty"] = string.Empty;
dr["Start"] = string.Empty;
dr["End"] = string.Empty;
dr["Status"] = string.Empty;
dt.Rows.Add(dr);
}
ViewState["CurrentTable"] = dt;
GridView1.AutoGenerateColumns = false;
GridView1.DataSource = dt;
GridView1.DataBind();
GridView1.Visible = true;
}
现在我想在点击按钮时访问TextBox值。
Now I want to access TextBox value on button click.
推荐答案
TextBox txtSNo = (TextBox)GridView1.Rows[iCount].FindControl("txtSNo");
string SerialNumber = txtSNo.Text;
protected void button1_Click(object sender, EventArgs e)
{
GridViewRow row = (GridViewRow)((Button)sender).NamingContainer;
TextBox TextBox1 = row.FindControl("TextBox1") as TextBox;
//To access TextBox1 value here.
string myString = TextBox1.Text;
}
protected void gridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
//this line is taking selected row value.
int SelectedRow = Convert.ToInt32(e.CommandArgument.ToString());
TextBox OrginalTextboxResource=(TextBox)gridDisplay.Rows[e.RowIndex].FindControl("Your Text Box Name");
string UserEnteredText = OrginalTextboxResource.Text;
}
这篇关于如何从gridview的ItemTemplate访问数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!