我正在使用Asp.Net Gridview并在第三列中动态添加文本框。 第三列有一个PlaceHolder,我在该placeHolder中动态添加Textbox。这部分工作正常。现在,如果我在该文本框内输入任何文本,我怎么能够获得用户输入的值。获取Asp.Net Gridview中动态创建控件的值C#
0
A
回答
0
下面是我的代码:
protected void ddlChangeSubType_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlChangeSubType = (DropDownList)sender;
GridViewRow currentRow = (GridViewRow)ddlChangeSubType.NamingContainer;
DropDownList ddlChangeType = currentRow.FindControl("ddlChangeType") as DropDownList;
//TextBox txt = currentRow.FindControl("txt") as TextBox;
PlaceHolder placehldr = currentRow.FindControl("placehldrDynamicCnrtl") as PlaceHolder;
object objControl;
rowIndex = currentRow.RowIndex;
if (Session["DynamicControls"] != null)
{
for (int y = 0; y < CRFormGridView.Rows.Count; y++)
{
if (((Dictionary<int, object>)Session["DynamicControls"]).TryGetValue(y, out objControl))
{
objControlsDict.Add(y, objControl);
}
}
}
if (ddlChangeSubType != null && currentRow != null && ddlChangeSubType != null)
{
switch (ddlChangeType.SelectedItem.Text.ToUpper())
{
case "UPDATE OFFER":
TextBox txtBox = new TextBox();
txtBox.Text = "Text Box Added";
txtBox.ID = "txt";
txtBox.ClientIDMode = ClientIDMode.Static;
txtBox.EnableViewState = true;
placehldr.Controls.Add(txtBox);
if (objControlsDict.ContainsKey(rowIndex))
objControlsDict.Remove(rowIndex);
objControlsDict.Add(rowIndex, txtBox);
break;
case "ADD COMPONENT":
Label lbl = new Label();
lbl.Text = "Label Added";
lbl.ID = "lbl";
lbl.ClientIDMode = ClientIDMode.Static;
lbl.EnableViewState = true;
placehldr.Controls.Add(lbl);
if (objControlsDict.ContainsKey(rowIndex))
objControlsDict.Remove(rowIndex);
objControlsDict.Add(rowIndex, lbl);
break;
case "UPDATE REQUEST":
break;
default:
break;
}
Session.Add("DynamicControls", objControlsDict);
}
}
protected void placehldrDynamicCnrtl_PreRender(object sender, EventArgs e)
{
try
{
if (Page.IsPostBack)
{
PlaceHolder placeHldr = (PlaceHolder)sender;
GridViewRow currentRow = (GridViewRow)placeHldr.NamingContainer;
objControlsDict = (Dictionary<int, object>)Session["DynamicControls"];
if (objControlsDict != null)
{
if (objControlsDict.ContainsKey(count) && objControlsDict[count] is TextBox)
{
TextBox txtBox = (TextBox)objControlsDict[count];
txtBox.Text = "Text Box Added";
txtBox.ID = "txt";
txtBox.ClientIDMode = ClientIDMode.Static;
txtBox.EnableViewState = true;
((PlaceHolder)this.CRFormGridView.Rows[count].Cells[3].FindControl(
"placehldrDynamicCnrtl")).Controls.Add(txtBox);
}
if (objControlsDict.ContainsKey(count) && objControlsDict[count] is Label)
{
Label lbl = (Label)objControlsDict[count];
lbl.Text = "Label Added";
lbl.ID = "lbl";
lbl.ClientIDMode = ClientIDMode.Static;
lbl.EnableViewState = true;
((PlaceHolder)this.CRFormGridView.Rows[count].Cells[3].FindControl(
"placehldrDynamicCnrtl")).Controls.Add(lbl);
}
count++;
}
}
}
catch (Exception es)
{
throw;
}
}
0
您可以用'的FindControl( “控件ID”)来访问你的文本框,例如:
TextBox txtbox = (TextBox)FindControl("txt");
,为了得到它的价值,你”你会写:
String txt_value = txtbox.Text;
你可以访问你的文本框的任何属性后,使TextBox对象和找到它的ID与th e帮助如果FindControl()
相关问题
- 1. 在asp.net中获取动态创建控件的属性值
- 2. 从Gridview |获取动态创建的复选框值Asp.net
- 3. 如何在动态创建的ASP.net控件中动态创建ASP.net控件
- 4. ASP.NET:动态创建控件
- 5. ASP.NET动态GridView创建
- 6. 在动态创建的表格中获取动态控制值
- 7. 获取Telerik中动态创建的控件的值:RadGrid
- 8. 访问动态创建的控件的值c#asp.net
- 9. 从updatepanel中动态创建的控件获取值
- 10. 在C中动态创建Android控件#
- 11. 在asp.net中创建动态控件
- 12. 在asp.net中寻址动态创建的文本框控件C#
- 13. 在Asp.Net中检索动态创建控件的值
- 14. 动态构建SelectCommand中的GridView控件的SqlDataSource在asp.net
- 15. 根据静态控件的选定值创建动态控件
- 16. C# - 动态创建控件重叠
- 17. 获取动态创建的textarea的值
- 18. ASP.NET动态创建自定义控件
- 19. ASP.NET:格式动态创建控件
- 20. ASP.NET动态创建控件和Postback
- 21. ASP.NET MVC:创建控件动态
- 22. 动态创建控件ID在asp.net
- 23. asp.net mvc c#获取控制器值的动态复选框
- 24. 动态创建gridview
- 25. 从Qt中动态创建的Qline editss获取文本值C++
- 26. 获取动态创建的下拉值
- 27. 动态控件创建
- 28. 动态创建控件和跨回传保存控制值 - ASP.Net C#
- 29. 如何获取C#中动态生成的控件的值?
- 30. 在RowUpdating(ASP.NET GridView)中获取GridView内部标签的旧值C#
显示您的代码! –
在什么事件你想获得文本框的价值? – Adil
在gridview中的下拉列表中,我正在创建控件。所以当我更改下拉列表的值时,我想要在文本框内输入用户值。 – Rahul