永发信息网

GridView中的SelectedIndexChanged事件使用后为什么没有效果

答案:3  悬赏:40  手机版
解决时间 2021-01-25 12:33
  • 提问者网友:世勋超人
  • 2021-01-25 09:18
using System;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Configuration;
using System.Data.SqlClient;

public partial class xgxz : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
string dsn = System.Configuration.ConfigurationManager.ConnectionStrings["dsn"].ToString();
SqlConnection con = new SqlConnection(dsn);
con.Open();
String SQL = "select top 6 newsid,newstitle,CONVERT(char(10), newstime, 102) AS newstime,newstype from news where newstype=61 ";
SqlDataAdapter sd = new SqlDataAdapter(SQL, con);
DataSet ds = new DataSet();
sd.Fill(ds, "news");
this.GridView1.DataSource = ds.Tables["news"].DefaultView;
this.GridView1.DataBind();
con.Close();
}
///
/// 截取字符串
///

/// 要截取的字符串
/// 规定该字符串显示的长度
/// 结果字符串

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
e.Row.Cells[0].ToolTip = Str;
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)//数据行
{
string Str = e.Row.Cells[0].Text; //第二列内容
if (Str.Length > 10) //第二列内容大于20个
{
e.Row.Cells[0].Text = Str.Substring(0, 10) + "..."; //截取20个显示,其他用“...”号代替
e.Row.Cells[0].ToolTip = Str;//鼠标放上去显示全部信息
}
}
}
}

string Str;
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)//数据行
{
Str = e.Row.Cells[0].Text; //第二列内容
if (Str.Length > 2) //第二列内容大于20个
{
e.Row.Cells[0].Text = Str.Substring(0, 2) + "..."; //截取20个显示,其他用“...”号代替
e.Row.Cells[0].ToolTip = Str;//鼠标放上去显示全部信息
}
}

还是不对。。。。没有效果的
最佳答案
  • 五星知识达人网友:北方的南先生
  • 2021-01-25 10:27
你的Str 变量不是全局的
全部回答
  • 1楼网友:空山清雨
  • 2021-01-25 12:07
因为你根本没有选中任何行,所以永远是-1,你如果用了rowcommand等一系列的事件的话,可以用e.rowindex获得索引
  • 2楼网友:山河有幸埋战骨
  • 2021-01-25 11:03
你这程序根本就运行不起来。把GridView1_RowDataBound事件中 的string Str 放到外面,然后在里面在 Str=e.Row.Cells[0].Text; //第二列内容
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯