gridview 动态绑定控件
想在gridview的第一行绑定checkbox控件,第2行绑定dropdownlist控件,而且列可以动态添加。请问asp.netc#怎么实现。在线等,解决后加100分...
想在gridview的第一行绑定checkbox控件,第2行绑定dropdownlist控件,而且列可以动态添加。请问asp .net c# 怎么实现。在线等,解决后加100分。
谢谢你的回答,不过我需要的是动态增加列,而且每列里面既有checkbox,dropdownlist, 展开
谢谢你的回答,不过我需要的是动态增加列,而且每列里面既有checkbox,dropdownlist, 展开
3个回答
展开全部
第一步:生成一个和gridview相同列的datatable(暂且叫tableA),用于绑定gridview。
第二步:把gridview的数据从数据库中取出,放入datatable,注意,这是另外一个datatable(暂且叫tableB),gridview的数据都从这里取。不过datatable的行是gridview的列。第一步的那个datatable仅仅用于gridview绑定用,没有任何其他用途。
第三步:根据第二步的tableB的数据行,动态生成gridview的列。同时add控件。
第四步:给gridview生成的动态控件绑定自己的事件。
第五步:给事件添加更改tableB的代码。
第六步:把tableB放进session.
完毕。
第二步:把gridview的数据从数据库中取出,放入datatable,注意,这是另外一个datatable(暂且叫tableB),gridview的数据都从这里取。不过datatable的行是gridview的列。第一步的那个datatable仅仅用于gridview绑定用,没有任何其他用途。
第三步:根据第二步的tableB的数据行,动态生成gridview的列。同时add控件。
第四步:给gridview生成的动态控件绑定自己的事件。
第五步:给事件添加更改tableB的代码。
第六步:把tableB放进session.
完毕。
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
展开全部
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Panel ID="Panel1" DefaultButton="Button1" runat="server">
<asp:TextBox ID="TextBox1" Text='<%#Eval("StrValue")%>' runat="server" />
<asp:Button ID="Button1" UseSubmitBehavior="false" runat="server" Text="Button" OnClick="Button1_Click" />
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
我为了使我的GridView有数据测试,所以新增了test类,楼主完全用数据库来提供数据。
public class test
{
private string strValue;
public string StrValue
{
get
{
return strValue;
}
set
{
if (strValue == value)
return;
strValue = value;
}
}
}
接着是页面code部分了
protected void Page_Load(object sender, EventArgs e)
{
List<test> a = new List<test>();
for (int i = 0; i < 10; i++)
{
test t = new test();
t.StrValue = i.ToString();
a.Add(t);
}
GridView1.DataSource = a;
GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
Panel pan = (Panel)btn.Parent;
TextBox tb = (TextBox)pan.FindControl("TextBox1");
Label1.Text = tb.Text;
}
赶快运行下吧,把鼠标点进第一行的文本框,不要犹豫,按回车八,按好了么,快看看下边的Label显示什么吧,没错吧,而且每行都有这样的效果噢!!
好了我总结一下技术要点吧:
1.在Template列中用Panel把TextBox和Button包裹进去,然后在Panel上设置DefaultButton的属性指向Button,这个是关键。
2.后台Button_Click事件的sender参数可以帮助你获取你想要的控件或资料。
thats all
<div>
<asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Panel ID="Panel1" DefaultButton="Button1" runat="server">
<asp:TextBox ID="TextBox1" Text='<%#Eval("StrValue")%>' runat="server" />
<asp:Button ID="Button1" UseSubmitBehavior="false" runat="server" Text="Button" OnClick="Button1_Click" />
</asp:Panel>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</div>
</form>
我为了使我的GridView有数据测试,所以新增了test类,楼主完全用数据库来提供数据。
public class test
{
private string strValue;
public string StrValue
{
get
{
return strValue;
}
set
{
if (strValue == value)
return;
strValue = value;
}
}
}
接着是页面code部分了
protected void Page_Load(object sender, EventArgs e)
{
List<test> a = new List<test>();
for (int i = 0; i < 10; i++)
{
test t = new test();
t.StrValue = i.ToString();
a.Add(t);
}
GridView1.DataSource = a;
GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
Panel pan = (Panel)btn.Parent;
TextBox tb = (TextBox)pan.FindControl("TextBox1");
Label1.Text = tb.Text;
}
赶快运行下吧,把鼠标点进第一行的文本框,不要犹豫,按回车八,按好了么,快看看下边的Label显示什么吧,没错吧,而且每行都有这样的效果噢!!
好了我总结一下技术要点吧:
1.在Template列中用Panel把TextBox和Button包裹进去,然后在Panel上设置DefaultButton的属性指向Button,这个是关键。
2.后台Button_Click事件的sender参数可以帮助你获取你想要的控件或资料。
thats all
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好:
你的要求比较特殊,用GridView也可以实现但是代码量比用表格多太多了,不如直接用表格。直接把两个数组填好了,列就自己添加了。
ccc是checkbox的一维数组
ddd是dropdownlist的二维数组,里面每个数组都是对应的dropdownlist的选项
protected void Page_Load(object sender, EventArgs e)
{
string[] ccc = { "checked", "checked", "checked", "checked", "",""};
string[,] ddd = new string[6, 3] { { "a", "a", "a" }, { "b", "b", "b" }, { "a", "a", "a" }, { "a", "a", "a" }, { "a", "a", "a" }, { "a", "a", "a" } };
mybind(ccc, ddd);
}
private void mybind(string[] checkvalue,string[,] ddlvalue)
{
string html = "<table border='1px' cellspacing='0' cellpadding='0' style='border-collapse:collapse;' bordercolor='Background' bgcolor='InactiveBorder'>";
html += "<tr>";
for (int i = 0; i < checkvalue.Length; i++)
{
html += "<td style='width: 40px ;'>";
html += "<input id='Checkbox" + i.ToString() + "' " + checkvalue[i] + " type='checkbox' />";
html += "</td>";
}
html += "</tr>";
html += "<tr>";
for (int i = 0; i <= ddlvalue.GetUpperBound(0); i++)
{
html += "<td>";
html += "<select style='width: 107px'>";
for (int j = 0; j <= ddlvalue.GetUpperBound(1); j++)
{
html += "<option >" + ddlvalue[i, j] + "</option>";
}
html += "</select>";
html += "</td>";
}
html += "</tr>";
html += "</table>";
Response.Write(html);
}
GOOD LUCK!!!
你的要求比较特殊,用GridView也可以实现但是代码量比用表格多太多了,不如直接用表格。直接把两个数组填好了,列就自己添加了。
ccc是checkbox的一维数组
ddd是dropdownlist的二维数组,里面每个数组都是对应的dropdownlist的选项
protected void Page_Load(object sender, EventArgs e)
{
string[] ccc = { "checked", "checked", "checked", "checked", "",""};
string[,] ddd = new string[6, 3] { { "a", "a", "a" }, { "b", "b", "b" }, { "a", "a", "a" }, { "a", "a", "a" }, { "a", "a", "a" }, { "a", "a", "a" } };
mybind(ccc, ddd);
}
private void mybind(string[] checkvalue,string[,] ddlvalue)
{
string html = "<table border='1px' cellspacing='0' cellpadding='0' style='border-collapse:collapse;' bordercolor='Background' bgcolor='InactiveBorder'>";
html += "<tr>";
for (int i = 0; i < checkvalue.Length; i++)
{
html += "<td style='width: 40px ;'>";
html += "<input id='Checkbox" + i.ToString() + "' " + checkvalue[i] + " type='checkbox' />";
html += "</td>";
}
html += "</tr>";
html += "<tr>";
for (int i = 0; i <= ddlvalue.GetUpperBound(0); i++)
{
html += "<td>";
html += "<select style='width: 107px'>";
for (int j = 0; j <= ddlvalue.GetUpperBound(1); j++)
{
html += "<option >" + ddlvalue[i, j] + "</option>";
}
html += "</select>";
html += "</td>";
}
html += "</tr>";
html += "</table>";
Response.Write(html);
}
GOOD LUCK!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询