关于Repeater里控件后台事件问题
<asp:RepeaterID="Repeater1"runat="server"OnItemDataBound="rpt_ItemDataBound"><ItemTem...
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="rpt_ItemDataBound">
<ItemTemplate>
<asp:LinkButton ID="lbtnContent" style="TEXT-DECORATION: none" runat="server" OnClick="lbtnContent_Click" Text=<%#CutString(DataBinder.Eval(Container.DataItem,"Content").ToString(),50)%> ></asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
页面用LinkButton 显示Content。linkButton 中Text=<%#CutString(DataBinder.Eval(Container.DataItem,"Content").ToString(),50)%> 是截取了Content 部分内容显示。想做成
点击LinkButton的Text值时 展示Content 的所有内容 让linkButton 的Text=<%# Eval("Content") %>。如果再点击一次展开
内容,则有收缩回去,显示截取的部分内容。请问这个要怎么实现?
我想问LinkButton 的OnClick="lbtnContent_Click" 该怎么写? 再问一下,如何在后台换掉 LinkButton绑定的内容呢? 展开
<ItemTemplate>
<asp:LinkButton ID="lbtnContent" style="TEXT-DECORATION: none" runat="server" OnClick="lbtnContent_Click" Text=<%#CutString(DataBinder.Eval(Container.DataItem,"Content").ToString(),50)%> ></asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
页面用LinkButton 显示Content。linkButton 中Text=<%#CutString(DataBinder.Eval(Container.DataItem,"Content").ToString(),50)%> 是截取了Content 部分内容显示。想做成
点击LinkButton的Text值时 展示Content 的所有内容 让linkButton 的Text=<%# Eval("Content") %>。如果再点击一次展开
内容,则有收缩回去,显示截取的部分内容。请问这个要怎么实现?
我想问LinkButton 的OnClick="lbtnContent_Click" 该怎么写? 再问一下,如何在后台换掉 LinkButton绑定的内容呢? 展开
展开全部
个人觉得用ItemCommand比较好,容易找到对应的数据
前台:
<asp:Repeater runat="server" ID="rpt" onitemcommand="rpt_ItemCommand">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbn" CommandName="ShowMore" CommandArgument='<%# Eval("ID") %>'></asp:LinkButton>//假设ID为主键
</ItemTemplate>
</asp:Repeater>
后台:
protected void rpt_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "ShowMore")
{
object o;//这里通过e.CommandArgument来找到对应的数据
((LinkButton)source).Text = o.Content;
}
}
前台:
<asp:Repeater runat="server" ID="rpt" onitemcommand="rpt_ItemCommand">
<ItemTemplate>
<asp:LinkButton runat="server" ID="lbn" CommandName="ShowMore" CommandArgument='<%# Eval("ID") %>'></asp:LinkButton>//假设ID为主键
</ItemTemplate>
</asp:Repeater>
后台:
protected void rpt_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if (e.CommandName == "ShowMore")
{
object o;//这里通过e.CommandArgument来找到对应的数据
((LinkButton)source).Text = o.Content;
}
}
展开全部
我给你说说思路啊。在后台linkbutton的事件里,获取该行的text,判断其长度,如果长度为50,则把它的text属性绑定改成原长。。。。。。。
static ArrayList myArray = new ArrayList();
protected void Page_Load(object sender, EventArgs e)
{
}
public string GetStr(string str)
{
myArray.Add(str);
if (str.Length > 50)
{
return str.Substring(0, 50) + "...";
}
else
{
return str;
}
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
LinkButton lb = (LinkButton)sender;
RepeaterItem ri = (RepeaterItem)lb.Parent;
int index = ri.ItemIndex;
if (lb.Text.Length == 50)
{
lb.Text = myArray[index].ToString();
}
else
{
Repeater1.DataBind();
}
static ArrayList myArray = new ArrayList();
protected void Page_Load(object sender, EventArgs e)
{
}
public string GetStr(string str)
{
myArray.Add(str);
if (str.Length > 50)
{
return str.Substring(0, 50) + "...";
}
else
{
return str;
}
}
protected void LinkButton2_Click(object sender, EventArgs e)
{
LinkButton lb = (LinkButton)sender;
RepeaterItem ri = (RepeaterItem)lb.Parent;
int index = ri.ItemIndex;
if (lb.Text.Length == 50)
{
lb.Text = myArray[index].ToString();
}
else
{
Repeater1.DataBind();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以在linkbutton事件里做文章,做个开关 如果开赋值给linkbutton全值 否则则截取字符串, 前台就不写截取字符串了 ,由事件来赋值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询