前台aspx代码:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
ShowHeader=False BorderWidth=0px
DataSourceID="SqlDataSource1" DataKeyNames="id">
<Columns>
<asp:TemplateField HeaderText="topic" SortExpression="topic" ItemStyle-HorizontalAlign=Left>
<ItemTemplate >
<asp:HyperLink ID="HyperLink1" runat="server" ForeColor="#184073" Font-Size="14px" NavigateUrl='<%# Eval("id","view.aspx?id={0}") %>' Text='<%# Bind("topic") %>'></asp:HyperLink>
</ItemTemplate> <ItemStyle HorizontalAlign="Left" Width="300px"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
后台cs代码:
foreach (GridViewRow gvr in GridView1.Rows)
{
string ginto = Convert.ToString(((HyperLink)gvr.FindControl("HyperLink1")).Text);
((HyperLink)gvr.FindControl("HyperLink1")).Text = SubStr(ginto,20);
}
} public string SubStr(string sString, int nLeng)
{
if (sString.Length <= nLeng)
{
return sString;
}
else
{
string sNewStr = sString.Substring(0, nLeng);
sNewStr = sNewStr + "…";
return sNewStr;
}
为什么topic字段不管字符超不超过20个,都加上了省略号,是不是无法判断gridview中 ((HyperLink)gvr.FindControl("HyperLink1")).Text 的长度?另想问,在a页面中,通过前台传值<li><a href="index.aspx?id=1"></a>链接</li>,在另一个b页面中的iframe打开页面时,为什么会出现中文乱码
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
ShowHeader=False BorderWidth=0px
DataSourceID="SqlDataSource1" DataKeyNames="id">
<Columns>
<asp:TemplateField HeaderText="topic" SortExpression="topic" ItemStyle-HorizontalAlign=Left>
<ItemTemplate >
<asp:HyperLink ID="HyperLink1" runat="server" ForeColor="#184073" Font-Size="14px" NavigateUrl='<%# Eval("id","view.aspx?id={0}") %>' Text='<%# Bind("topic") %>'></asp:HyperLink>
</ItemTemplate> <ItemStyle HorizontalAlign="Left" Width="300px"></ItemStyle>
</asp:TemplateField>
</Columns>
</asp:GridView>
后台cs代码:
foreach (GridViewRow gvr in GridView1.Rows)
{
string ginto = Convert.ToString(((HyperLink)gvr.FindControl("HyperLink1")).Text);
((HyperLink)gvr.FindControl("HyperLink1")).Text = SubStr(ginto,20);
}
} public string SubStr(string sString, int nLeng)
{
if (sString.Length <= nLeng)
{
return sString;
}
else
{
string sNewStr = sString.Substring(0, nLeng);
sNewStr = sNewStr + "…";
return sNewStr;
}
为什么topic字段不管字符超不超过20个,都加上了省略号,是不是无法判断gridview中 ((HyperLink)gvr.FindControl("HyperLink1")).Text 的长度?另想问,在a页面中,通过前台传值<li><a href="index.aspx?id=1"></a>链接</li>,在另一个b页面中的iframe打开页面时,为什么会出现中文乱码
解决方案 »
- C# 如何实现记住用户名和密码?
- 请高手指点
- 在WinForm中实现FTP客户端,使用哪个类?谢谢
- DataGridView的绑定问题
- 怎么改变button的外观让它好看点?
- 看到一些代码。abstract方法用override重写,virtual方法也用override重写,两者有什么区别?另外,用NEW隐藏父类方法时,父类方法要什么
- 怎么在C#开发里指定 <a> 标签中的 rel 属性值
- 请问怎么在ASP.NET2.0里打印网页指定的内容
- 一定给分!!!我用VS.net生成C# WebProject出错!!!!急!
- 使用C#的XML类库去进行读取XML,Attributes的value中换行符会丢失
- 串口数据截获的问题
- 如何设计一个方法方便设置和调用
看看
Convert.ToString(((HyperLink)gvr.FindControl("HyperLink1")).Text)的内容及ginto.Length出现乱码,应该是页面编码的问题
{
string ginto = Convert.ToString(((HyperLink)gvr.FindControl("HyperLink1")).Text);
((HyperLink)gvr.FindControl("HyperLink1")).Text = SubStr(ginto,20);
}
这个是写在哪个地方,何时触发的,可能也有影响.
white-space:nowrap;
text-overflow:ellipsis;
overflow:hidden;
把你后台方法参数改成object public string SubStr(object sString, object nLeng)
{
int i = Convit.Toint32(nLeng);
string str = sString.Tostring();
if (str.Length <= i)
{
return str;
}
else
{
string sNewStr = sString.Substring(0, i);
sNewStr = sNewStr + "…";
return sNewStr;
}前台:Text='<%# SubStr(Bind("topic"),10) %>'
public string Strsplit(string str,int maxlength)
{
string strg=string.empty;
if(str.Length>maxlength)
strg=str.substring(0,maxlength)+"...";
else
strg=str;
return str;
}DataTextField= <%# Strsplit(Eval("").ToString(),10) %>
RowDataBound中截取
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("Content").ToString().Length>20?Eval("Content").ToString().Substring(0,20)+"..":Eval("Content") %>' ToolTip='<%# Eval("Content")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
DataRowView mydrv;
string gIntro;
if (GridView1.PageIndex == 0)
{
mydrv = myds.Tables["飞狐工作室"].DefaultView[i];//表名
gIntro = Convert.ToString(mydrv["家庭住址"]);//所要处理的字段
GridView1.Rows[i].Cells[3].Text = SubStr(gIntro, 2);
}
else
{
mydrv = myds.Tables["飞狐工作室"].DefaultView[i + (5 * GridView1.PageIndex)];
gIntro = Convert.ToString(mydrv["家庭住址"]);
GridView1.Rows[i].Cells[3].Text = SubStr(gIntro, 2);
}
} 调用的方法: public string SubStr(string sString, int nLeng)
{
if (sString.Length <= nLeng)
{
return sString;
}
string sNewStr = sString.Substring(0, nLeng);
sNewStr = sNewStr + "...";
return sNewStr;
}后台全部代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page
{
SqlConnection sqlcon;
SqlCommand sqlcom;
string strCon = "Data Source=(local);Database=北风贸易;Uid=sa;Pwd=sa";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ViewState["SortOrder"] = "身份证号码";
ViewState["OrderDire"] = "ASC";
bind();
}
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
bind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
string sqlstr = "delete from 飞狐工作室 where 身份证号码='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcon = new SqlConnection(strCon);
sqlcom = new SqlCommand(sqlstr,sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
bind();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
sqlcon = new SqlConnection(strCon);
string sqlstr = "update 飞狐工作室 set 姓名='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',家庭住址='"
+ ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where 身份证号码='"
+ GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
sqlcom=new SqlCommand(sqlstr,sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
GridView1.EditIndex = -1;
bind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
bind();
}
public void bind()
{
string sqlstr = "select top 5 * from 飞狐工作室";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, "飞狐工作室");
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "身份证号码" };
GridView1.DataBind();
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
DataRowView mydrv;
string gIntro;
if (GridView1.PageIndex == 0)
{
mydrv = myds.Tables["飞狐工作室"].DefaultView[i];
gIntro = Convert.ToString(mydrv["家庭住址"]);
GridView1.Rows[i].Cells[3].Text = SubStr(gIntro, 2);
}
else
{
mydrv = myds.Tables["飞狐工作室"].DefaultView[i + (5 * GridView1.PageIndex)];
gIntro = Convert.ToString(mydrv["家庭住址"]);
GridView1.Rows[i].Cells[3].Text = SubStr(gIntro, 2);
}
}
sqlcon.Close();
}
public string SubStr(string sString, int nLeng)
{
if (sString.Length <= nLeng)
{
return sString;
}
string sNewStr = sString.Substring(0, nLeng);
sNewStr = sNewStr + "...";
return sNewStr;
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
//如果是绑定数据行
if (e.Row.RowType == DataControlRowType.DataRow)
{
////鼠标经过时,行背景色变
//e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA'");
////鼠标移出时,行背景色变
//e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'"); ////当有编辑列时,避免出错,要加的RowState判断
//if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate)
//{
// ((LinkButton)e.Row.Cells[6].Controls[0]).Attributes.Add("onclick", "javascript:return confirm('你确认要删除:\"" + e.Row.Cells[1].Text + "\"吗?')");
//} }
if (e.Row.RowIndex != -1)
{
int id = e.Row.RowIndex + 1;
e.Row.Cells[0].Text = id.ToString();
} }
}
http://wenku.baidu.com/view/7626f4f8941ea76e58fa04da.html
Style="white-space:nowrap; text-overflow:ellipsis; overflow:hidden;"
设置个宽度。好用