在DataList中对控件属性的一个应用
以下是html页面代码。因为一个label需要一个显示的值和一个实际的value,我通过下面代码将一个label赋上了两个值。
然后 在javascript中使用这个值。
<script>
<asp:datalist id="dlKPIItem" runat="server" BorderWidth="1px" CellPadding="1">
<ItemStyle BorderWidth="1px"></ItemStyle>
<ItemTemplate>
<asp:label id="lblKPIItemName" runat="server" style="CURSOR: default" Text='<%# DataBinder.Eval(Container.DataItem,"KIM_Name")%>' CssClass="LabelTitle"></asp:label>
<asp:label id="lblKPIItemData" Font-Underline=True runat="server" style="CURSOR: hand" code='<%# DataBinder.Eval(Container.DataItem,"KIM_Code")%>' name='<%# DataBinder.Eval(Container.DataItem,"KIM_Name")%>' onclick="kpiItemSelect(this,'Data');" CssClass="LabelTitle">数据</asp:label>
<asp:label id="lblKPIItemGrade" Font-Underline=True runat="server" style="CURSOR: hand" code='<%# DataBinder.Eval(Container.DataItem,"KIM_Code")%>' name='<%# DataBinder.Eval(Container.DataItem,"KIM_Name")%>' onclick="kpiItemSelect(this,'Grade');" CssClass="LabelTitle">得分</asp:label>
</ItemTemplate>
</asp:datalist>
<ItemStyle BorderWidth="1px"></ItemStyle>
<ItemTemplate>
<asp:label id="lblKPIItemName" runat="server" style="CURSOR: default" Text='<%# DataBinder.Eval(Container.DataItem,"KIM_Name")%>' CssClass="LabelTitle"></asp:label>
<asp:label id="lblKPIItemData" Font-Underline=True runat="server" style="CURSOR: hand" code='<%# DataBinder.Eval(Container.DataItem,"KIM_Code")%>' name='<%# DataBinder.Eval(Container.DataItem,"KIM_Name")%>' onclick="kpiItemSelect(this,'Data');" CssClass="LabelTitle">数据</asp:label>
<asp:label id="lblKPIItemGrade" Font-Underline=True runat="server" style="CURSOR: hand" code='<%# DataBinder.Eval(Container.DataItem,"KIM_Code")%>' name='<%# DataBinder.Eval(Container.DataItem,"KIM_Name")%>' onclick="kpiItemSelect(this,'Grade');" CssClass="LabelTitle">得分</asp:label>
</ItemTemplate>
</asp:datalist>
然后 在javascript中使用这个值。
<script>
function kpiItemSelect(item,suffix)
{
var strExpression=trim(document.getElementById("txtExpression").value);
var strExpressionHidden=trim(document.getElementById("txtExpressionHidden").value);
strExpression += "["+trim(item.getAttribute("name"))+"_"+trim(item.innerText)+"]";
strExpressionHidden += "["+trim(item.getAttribute("code"))+"_"+trim(suffix)+"]";
if(checkStrLength(strExpressionHidden))
{
document.getElementById("txtExpression").value=strExpression;
//save selected item
document.getElementById("txtPreItem").value += item.getAttribute("code")+",";
//Expression save to DB
document.getElementById("txtExpressionHidden").value=strExpressionHidden;
}
}
{
var strExpression=trim(document.getElementById("txtExpression").value);
var strExpressionHidden=trim(document.getElementById("txtExpressionHidden").value);
strExpression += "["+trim(item.getAttribute("name"))+"_"+trim(item.innerText)+"]";
strExpressionHidden += "["+trim(item.getAttribute("code"))+"_"+trim(suffix)+"]";
if(checkStrLength(strExpressionHidden))
{
document.getElementById("txtExpression").value=strExpression;
//save selected item
document.getElementById("txtPreItem").value += item.getAttribute("code")+",";
//Expression save to DB
document.getElementById("txtExpressionHidden").value=strExpressionHidden;
}
}
</script>
这样就实现了使一个label同时具有text和value。
但是遗憾的是,我打算在普通的label中作这个实验没有成功,
想法是
<asp:label id="lblCode" runat="server" name="<%Name%>" CssClass="LabelTitle" ForeColor="Blue">文本</asp:label>
或者
<asp:label id="lblCode" runat="server" CssClass="LabelTitle" ForeColor="Blue"><%Name%> </asp:label>
然后在后台cs 文件中 声明一个Name变量。
出现错误,声称没有发现Name变量。