DataList高级应用(响应按钮分页)

<% @ Page Language = " C# "   %>
<% @ Import Namespace = " System.Data.SqlClient "   %>
<% @ Import Namespace = " System.Data "   %>
<% @ Import Namespace = " System.Drawing "   %>


< SCRIPT runat = " server " >  
private  CheckBox m_checkBox;
private   string  m_connString  =   " SERVER=localhost;DATABASE=Northwind;UID=sa;pwd= " ;
private   string  m_cmdCustmrs  =   " SELECT * FROM customers WHERE companyname LIKE '{0}%' " ;
private   string  m_cmdInitial  =   " SELECT DISTINCT substring(companyname, 1, 1) AS Initial FROM customers " ;

public   void  Page_Load( object  sender, EventArgs e)
{
    
if (!IsPostBack)
        BindInitials();
}


private   void  BindInitials()
{
    DataSet _data 
= new DataSet();

    
// Get the initials
    SqlDataAdapter _adapter = new SqlDataAdapter(m_cmdInitial, m_connString);
    _adapter.Fill(_data, 
"Initials");

    Picker.DataSource 
= _data.Tables["Initials"].DefaultView;
    Picker.DataBind();
}


private   void  BindData()
{
    BindData((
string) ViewState["Initial"]);
}


private   void  BindData( string  initial)
{
    
// Store the initial
    ViewState["Initial"= initial;
    
    
// Get the data
    string _cmdText = m_cmdInitial + ";";
    _cmdText 
+= String.Format(m_cmdCustmrs, initial);
    SqlDataAdapter _adapter 
= new SqlDataAdapter(_cmdText, m_connString);
    DataSet _data 
= new DataSet();
    _adapter.Fill(_data);
    
    
// Rename tables
    _data.Tables[0].TableName = "Initials";
    _data.Tables[
1].TableName = "Customers";
    
    
// Reset selected and edit items
    Customers.SelectedIndex = -1;
    Customers.EditItemIndex 
= -1;
    
    Picker.DataSource 
= _data.Tables["Initials"].DefaultView;
    Picker.DataBind();
    Customers.DataSource 
= _data.Tables["Customers"].DefaultView;
    Customers.DataBind();
}


public   void  SelectedIndexChanged( object  sender, EventArgs e)
{
    
// Scroll into view
    if (Customers.SelectedIndex != -1)
    
{
        
string custID = (string) Customers.DataKeys[Customers.SelectedIndex];
        TheBody.Attributes[
"onload"= String.Format("ScrollToElem('{0}')", custID);
    }

}


public   void  OnRefresh( object  sender, EventArgs e)
{
    BindData();
}


private   string  SetCustomerName( object  dataItem)
{
    
string _output = "<b>{0}&nbsp;-&nbsp;{1}</b>";
    DataRowView _row 
= (DataRowView) dataItem;
    _output 
= String.Format(_output, _row["customerid"], _row["companyname"]);
    
    
return _output;
}


private   string  ShowInfoBar( object  dataItem)
{
    
string color = (m_checkBox.Checked ?"blue" :"black");
    
string _output = "<span style='color:{0};'>(<i>{1}, {2}</i>)</span>";
    DataRowView _row 
= (DataRowView) dataItem;
    _output 
= String.Format(_output, color, _row["contactname"], _row["contacttitle"]);

    
return _output;
}


private   string  ShowAddressBar( object  dataItem)
{
    
if (!m_checkBox.Checked)
        
return "";

    
string color = (m_checkBox.Checked ?"blue" :"black");
    
string _output = "<br><span style='color:{0};'>{1}, {2} ({3})<br>{4}</span>";
    DataRowView _row 
= (DataRowView) dataItem;
    _output 
= String.Format(_output, color, _row["address"], _row["city"], _row["country"], _row["Phone"]);

    
return _output;
}


private   string  SetHeader()
{
    
string _text = "Customers [{0}]";
    
return String.Format(_text, (string) ViewState["Initial"]);
}


private   string  SetFooter()
{
    
string _text = "{0} customer(s) found.";

    ICollection _coll 
= (ICollection) Customers.DataSource;
    
return String.Format(_text, _coll.Count);
}


private  Color GetBackColor( object  dataItem)
{
    
string _initial = (string) ((DataRowView)dataItem)["Initial"];
    
if (_initial == (string) ViewState["Initial"])
        
return Color.Gray;
    
return Color.LightCyan;
}


private  Color GetForeColor( object  dataItem)
{
    
string _initial = (string) ((DataRowView)dataItem)["Initial"];
    
if (_initial == (string) ViewState["Initial"])
        
return Color.White;
    
return Color.Black;
}


private  CheckBox FindCheckBox(Control container)
{
    CheckBox ctl 
= (CheckBox) container.FindControl("ExpandButton");
    
if (ctl == null)
        
return null;
        
    
// Must anticipate the state restoration here. When this function executes we're
    
// in the middle of the DataBind call on the given RepeaterItem object and 
    
// before the ItemDataBound event fires. At this time, the Checked property of the 
    
// CheckBox (as well as the Text property of a TextBox) has not been updated yet.
    ctl.Checked = (Page.Request.Form[ctl.UniqueID]=="on");
    
    
return ctl;
}


private   void  ItemCommand( object  sender, DataListCommandEventArgs e)
{
    BindData(e.CommandName);
}

</ SCRIPT >  


< html >  
< title > Customers </ title >
< style >
    a:hover    
{color:red;text-decoration:underline;}
    a        
{text-decoration:none;}
</ style >

< SCRIPT >
function ScrollToElem(custID)
{
    var elem 
= document.all(custID);
    
if (elem == null)
        
return;
    elem.scrollIntoView(
true);
}

</ SCRIPT >

< body runat = " server "  id = " TheBody "  vlink = " black "  link = " black "  bgcolor = " ivory "  style = " font-family:arial;font-size:9pt " >
< form runat = " server " >


< asp:datalist runat = " server "  id = " Picker "  repeatlayout = " flow "  repeatdirection = " horizontal "  OnItemCommand = " ItemCommand " >
    
< ItemTemplate >
            
< asp:button runat = " server "  style = " border:solid 1px gray;width=30px; "
                backcolor
= ' <%# GetBackColor(Container.DataItem) %> '  
                forecolor
= ' <%# GetForeColor(Container.DataItem) %> '  
                text
= ' <%# DataBinder.Eval(Container.DataItem, "Initial")%> '  
                commandname
= ' <%# DataBinder.Eval(Container.DataItem, "Initial")%> '   />
    
</ ItemTemplate >
</ asp:datalist >

< div style = " border:solid 1px gray; " >
< asp:datalist runat = " server "  id = " Customers "  
    RepeatLayout
= " flow "
    DataKeyField
= " customerid "
    OnSelectedIndexChanged
= " SelectedIndexChanged " >
    
    
< SelectedItemStyle backcolor = " cyan "  width = " 100% "   />
    
    
< HeaderTemplate >
        
< div style = " background-color:gray;color:white;height:20px; " >& nbsp; < big >< b ><% # SetHeader()  %></ b ></ big ></ div >
        
< div style = " background-color:white;height:260px;overflow:auto; " >
    
</ HeaderTemplate >

    
< ItemTemplate >
        
< span id = ' <%# DataBinder.Eval(Container.DataItem, "customerid") %> ' >
        
< span style = " display:none; " >
            
<% # m_checkBox  =  (CheckBox) FindCheckBox(Container)  %>
        
</ span >

        
< asp:checkbox runat = " server "  id = " ExpandButton "   />  
        
< asp:linkbutton runat = " server "  commandname = " select "
            text
= ' <%# SetCustomerName(Container.DataItem) %> '   />
        
< br >
        
<% # ShowInfoBar(Container.DataItem)  %>
        
<% # ShowAddressBar(Container.DataItem)  %>
        
</ span >
    
</ ItemTemplate >
    
    
< SeparatorTemplate >
    
</ SeparatorTemplate >
    
    
< FooterTemplate >
        
</ div >
        
< div style = " background-color:gray;color:white;height:20px; " >& nbsp; < b ><% # SetFooter()  %></ b ></ div >
    
</ FooterTemplate >
</ asp:datalist >
</ div >

< br >  
< asp:button runat = " server "  text = " Refresh "  onclick = " OnRefresh "  font - bold = " true "  style = " border:solid 1px gray;width=80px; "   />



</ form >  
</ body >
</ html >
 
内容概要:该论文聚焦于6G通信中20-100GHz频段的电磁场(EMF)暴露评估问题,提出了一种基于自适应可重构架构神经网络(RAWA-NN)的预测框架。该框架通过集成权重分析模块和优化模块,能够自动优化网络超参数,显著减少训练时间。模型使用70%的前臂数据进行训练,其余数据用于测试,并用腹部和股四头肌数据验证模型泛化能力。结果显示,该模型在不同参数下的相对差异(RD)在前臂低于2.6%,其他身体部位低于9.5%,可有效预测皮肤表面的温升和吸收功率密度(APD)。此外,论文还提供了详细的代码实现,涵盖数据预处理、权重分析模块、自适应优化模块、RAWA-NN模型构建及训练评估等内容。 适合人群:从事电磁兼容性研究、6G通信技术研发以及对神经网络优化感兴趣的科研人员和工程师。 使用场景及目标:①研究6G通信中高频段电磁暴露对人体的影响;②开发更高效的电磁暴露评估工具;③优化神经网络架构以提高模型训练效率和预测精度。 其他说明:论文不仅提出了理论框架,还提供了完整的代码实现,方便读者复现实验结果。此外,论文还讨论了未来的研究方向,包括扩展到更高频段(如300GHz)的数据处理、引入强化学习优化超参数、以及实现多物理场耦合的智能电磁暴露评估系统。建议读者在实际应用中根据具体需求调整模型架构和参数,并结合真实数据进行验证。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值