asp转发器项目模板 [英] asp repeater item templates
本文介绍了asp转发器项目模板的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
i有一个这样的asp页面:
Hi,
i have an asp page like this:
<ItemTemplate>
<tr>
<td>
<asp:Label ID="Label2" runat="server" Text='<%#Eval("cell")%>' />
</td>
<td>
<asp:Label ID="Label3" runat="server" Text='<%#Eval("group")%>' />
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("nm")%>' />
</td>
<td>
<asp:CheckBox ID="CheckBox1" Text="" runat="server" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
<asp:Button Text="Change" runat="server" OnClick="ChangeItems"/>
包含asp:repeater和asp:button
i想要这样做,当用户点击按钮时,asp:repeater的内容改为此,例如:
that contains asp:repeater and asp:button
i want to do that, when user clicked on button, the content of asp:repeater, changed to this, for example:
<pre lang="HTML">
<ItemTemplate>
<tr>
<td>
<asp:Label ID="Label2" runat="server" Text='<%#Eval("new")%>' />
</td>
<td>
<asp:Label ID="Label3" runat="server" Text='<%#Eval("test")%>' />
</td>
<td>
<asp:CheckBox ID="CheckBox1" Text="" runat="server" />
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
<asp:Button Text="Change" runat="server" OnClick="ChangeItems"/>
</pre>
推荐答案
您想在客户端或服务器端执行此操作吗?好。对于客户端,您可以使用javascript查看/隐藏。
例如:
do you want to do this work in client side or server side? ok. for client side you can visible/hidden with javascript.
like for example:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<script type="text/javascript">
function ToggleRepeater(chkVal) {
var tr1 = document.getElementById('trValue1');
var tr2 = document.getElementById('trValue2');
tr1.style.visibility = "hidden";
tr2.style.visibility = "hidden";
if (chkVal == 1) {
tr2.style.visibility = "visible";
}
else {
tr1.style.visibility = "visible";
}
}
</script>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="rpter1" runat="server">
<ItemTemplate>
<table border="0" cellpadding="0" cellspacing="0">
<tr id="trValue1">
<td>
<asp:Label ID="Label2" runat="server" Text='<%#Eval("val1")%>' />
</td>
<td>
<asp:Label ID="Label3" runat="server" Text='<%#Eval("val2")%>' />
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("val3")%>' />
</td>
<td>
<asp:CheckBox ID="CheckBox1" Text="" runat="server" onclick="ToggleRepeater(1)" />
</td>
</tr>
<tr id="trValue2" style="visibility:hidden">
<td>
<asp:Label ID="Label4" runat="server" Text='<%#Eval("val4")%>' />
</td>
<td>
<asp:Label ID="Label5" runat="server" Text='<%#Eval("val5")%>' />
</td>
<td>
<asp:CheckBox ID="CheckBox2" Text="" runat="server" onclick="ToggleRepeater(2)"/>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
代码落后:
code behind:
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("val1", typeof(string));
dt.Columns.Add("val2", typeof(string));
dt.Columns.Add("val3", typeof(string));
dt.Columns.Add("val4", typeof(string));
dt.Columns.Add("val5", typeof(string));
DataRow drNew = dt.NewRow();
drNew["val1"] = "value 1";
drNew["val2"] = "value 2";
drNew["val3"] = "value 3";
drNew["val4"] = "value 4";
drNew["val5"] = "value 5";
dt.Rows.Add(drNew);
rpter1.DataSource = dt;
rpter1.DataBind();
}
但我认为这是一个坏主意,因为只有可见并禁用它不好去服务器端。
ok,然后我给你这个代码:
客户端:
but I think its a bad idea, because only for visible and disable its not good to go server side.
ok, then I am giving you this code:
client side:
<form id="form1" runat="server">
<div>
<asp:Repeater ID="rpter1" runat="server">
<ItemTemplate>
<% if (status == "first")
{ %>
<table id="tbl1" runat="server" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<asp:Label ID="Label2" runat="server" Text='<%#Eval("val1")%>' />
</td>
<td>
<asp:Label ID="Label3" runat="server" Text='<%#Eval("val2")%>' />
</td>
<td>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("val3")%>' />
</td>
<td>
<asp:CheckBox ID="CheckBox1" runat="server" Text="" AutoPostBack="true" Checked="false" OnCheckedChanged="CheckBox1_ToggleRepeater" />
</td>
</tr>
</table>
<%}
if (status == "second")
{ %>
<table id="tbl2" runat="server" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<asp:Label ID="Label4" runat="server" Text='<%#Eval("val4")%>' />
</td>
<td>
<asp:Label ID="Label5" runat="server" Text='<%#Eval("val5")%>' />
</td>
<td>
<asp:CheckBox ID="CheckBox2" Text="" runat="server" AutoPostBack="true" Checked="false" OnCheckedChanged="CheckBox2_ToggleRepeater"/>
</td>
</tr>
</table>
<%} %>
</ItemTemplate>
</asp:Repeater>
</div>
</form>
server side:
server side:
public string status { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
this.status = "first";
if (!IsPostBack)
{
DataTable dt = new DataTable();
dt.Columns.Add("val1", typeof(string));
dt.Columns.Add("val2", typeof(string));
dt.Columns.Add("val3", typeof(string));
dt.Columns.Add("val4", typeof(string));
dt.Columns.Add("val5", typeof(string));
DataRow drNew = dt.NewRow();
drNew["val1"] = "value 1";
drNew["val2"] = "value 2";
drNew["val3"] = "value 3";
drNew["val4"] = "value 4";
drNew["val5"] = "value 5";
dt.Rows.Add(drNew);
rpter1.DataSource = dt;
rpter1.DataBind();
}
}
protected void CheckBox1_ToggleRepeater(object sender, EventArgs e)
{
CheckBox objChecked = (CheckBox)sender;
if (objChecked.Checked == true)
{
this.status = "second";
objChecked.Checked = false;
}
}
protected void CheckBox2_ToggleRepeater(object sender, EventArgs e)
{
CheckBox objChecked = (CheckBox)sender;
if (objChecked.Checked == true)
{
this.status = "first";
objChecked.Checked = false;
}
}
这篇关于asp转发器项目模板的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文