DataGrid 超连接列 绑定多个值
<asp:TemplateColumn HeaderText="团体类别">
<ItemTemplate>
<asp:HyperLink runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.GC_name") %>' NavigateUrl='<%# "GroupClassList.aspx?GC_ID=" + DataBinder.Eval(Container, "DataItem.GC_ID") + "&GC_name=" + DataBinder.Eval(Container, "DataItem.GC_name") %>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
*****************************************
数据库日期为yyyy-mm-dd格式时
在前台默认显示为yyyy-mm-dd 0:00:00,若要显示格式为“yyyy-mm-dd”
例子:
this.copylistnum.Text=dr_declare["数据库表日期字段"].ToString().Remove(dr_declare["数据库表日期字段"].ToString().LastIndexOf("0:00:00"),7);
*****************************************
//DataGrid中绑定列按扭事件和触发事件(模板列中的Button事件和LinkButton 事件,以及ButtonColumn 事件)
//例子:
//前台代码:
<asp:datagrid id="DataGrid1" runat="server" DataKeyField="softID" AutoGenerateColumns="False"
Width="800px">
<Columns>
<asp:BoundColumn Visible="False" DataField="softID" HeaderText="softID"></asp:BoundColumn>
<asp:BoundColumn DataField="soft_number" HeaderText="软件编号"></asp:BoundColumn>
<asp:BoundColumn DataField="soft_name" HeaderText="软件名称"></asp:BoundColumn>
<asp:BoundColumn DataField="people" HeaderText="开发者"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="双软申报情况">
<ItemTemplate>
<asp:Button Runat="server" Text="button" onclick="lb_Click" CausesValidation="False" ID="Button1" NAME="Button1"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
<asp:ButtonColumn Text="申报修改" ButtonType="PushButton" HeaderText="申报修改" CommandName="btn"></asp:ButtonColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton runat="server" Text="按钮" OnClick="lb_Click" CausesValidation="false"></asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
//后台代码:
public void btn_Click(object sender,string ID) //ButtonColumn按扭执行的事件
{
Response.Write("<script>alert('成功了');</script>");
Response.Redirect("double_view.aspx?softID="+ID);
}
public void lb_Click(object sender ,EventArgs e) //Button按扭和LinkButton按扭执行的事件
{
Response.Write("<script>alert('lbclick成功了');</script>");
}
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//触发ButtonColumn按扭事件
if(e.CommandName=="btn")
{
string soft_id=this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString();
this.btn_Click(source, soft_id);
}
//Response.Redirect("double_view.aspx?softID="+this.DataGrid1.DataKeys[e.Item.ItemIndex].ToString());
}
*****************************************
//marquee走停方法使用:
<marquee onmouseover="this.stop()" behavior="scroll" loop="-1" width="720" onmouseout="this.start()">显示文字</marquee>
*****************************************
日期类型显示时转换:
Convert.ToDateTime(dr["数据库中日期字段名"]).ToString("yyyy-MM-dd");
Convert.ToDateTime(dr["数据库中日期字段名"]).ToString("yyyy年MM月dd日");
货币类型显示时转换:
Convert.ToDecimal(dr["register_expense"]).ToString("C");
数据绑定格式转换:
货币形式:{0:c}
浮点数小数位数{0:n2} //三为小数就是n3
*****************************************
//asp.net中对数据库表插入null空值的问题:
sqlcmd.Parameters.Add(new SqlParameter("@t12",SqlDbType.DateTime));
if (tb12.Text.Length>0)
{
sqlcmd.Parameters["@t12"].Value=tb12.Text
}
else
{
sqlcmd.Parameters["@t12"].Value=System.DBNull.Value;
}
*****************************************
//往数据集合(DataTable)动态添加一列
//begin
int all=dt.Rows.Count;
string[] array1=new string[all];//存放开发者id值
string[] array2=new string[all];//存放开发者的名字
string[] array3=new string[all];//暂存
for(int j=0;j<all;j++)
{
string array2Str="";
array1[j]=dt.Rows[j]["developer"].ToString().Trim(); //从库里取出开发者id
array3=array1[j].ToString().Trim().Split(' ');//以空格分隔,取出id的值
foreach(string str in array3) //根据id的值,分别取出名字,放到array2中
{
if((str.Trim())!="")
{
string sqlstring="select employee_name from employee where employeeID="+str;
SqlCommand sqlname=new SqlCommand(sqlstring,myconn);
SqlDataReader ldr=sqlname.ExecuteReader();
if(ldr.Read())
array2Str+=ldr.GetValue(0).ToString()+" ";
ldr.Close();
}
}
array2[j]=array2Str;
}
DataColumn col=new DataColumn("people");//生成一列
dt.Columns.Add(col);
for(int k=0;k<all;k++)
{
dt.Rows[k]["people"]=array2[k];
}
//over
*****************************************
// sql语句 内嵌查询 (inner join)
// 而不能写成:a inner join b on 连接条件 inner join c on 连接条件 inner join d on 连接条件 inner join e on 连接条件
// 必须是:(((a inner join b on 连接条件) inner join c on 连接条件) inner join d on 连接条件) inner join e on 连接条件
// 在access里实验过的:
SELECT DISTINCT xt_t_car_use.keyid, xt_t_driver.driver_name, xt_t_car.plate, xt_t_car_use.apply_name, xt_yonghu.xingming, xt_t_car_use.deal_idea, xt_t_car_use.deal_user
FROM ((xt_t_car_use INNER JOIN xt_yonghu ON CInt(xt_t_car_use.apply_name)=xt_yonghu.keyid)
INNER JOIN xt_t_driver ON xt_t_car_use.driverid = xt_t_driver.keyid)
INNER JOIN xt_t_car ON xt_t_car.keyid = xt_t_car_use.carid
WHERE (xt_t_car_use.carid<>0) AND (xt_t_car_use.return_info='未还车')
*****************************************
//数据加密
//你的主页或者你管理的网站有各种密码需要保护,把密码直接放在数据库或者文件中存在不少安全隐患,
//所以密码加密后存储是最常见的做法。在ASP.NET中实现加密非常容易。.NET SDK中提供了
//CookieAuthentication类,其中的HashPasswordForStoringInConfigFile方法 可直接使用MD5和SHA1算法
// 注意:类CookieAuthentication的namespace是System.Web.Security
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.Label SHA1;
protected System.Web.UI.WebControls.Label MD5;
}
public void Button1_Click (object sender, System.EventArgs e)
{
MD5.Text = FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox1.Text,"MD5");
this.SHA1.Text = FormsAuthentication.HashPasswordForStoringInConfigFile(TextBox1.Text,"SHA1");
//SHA1 use CookieAuthentication.HashPasswordForStoringInConfigFile(TextBox1.Text,"SHA1");
}
*****************************************
table表格线(固定)设置
style="TABLE-LAYOUT: fixed;WORD-BREAK: break-all;
BORDER-COLLAPSE: collapse;WORD-WRAP: break-word" borderColor="#000066"