您的位置:首页 > 编程语言 > ASP

asp.net customdatagrid 或gridview绑定数据的时候经常要用到的 ItemDataBound 事件的方法

2013-03-12 23:38 736 查看
前台aspx页面:

JS获取索引号:

//判定值为大于0的整数
function checkDecisionValue(btn) {
if (btn.parentElement != undefined && btn.parentElement.parentElement != undefined) {
var gridRowIdx = btn.parentElement.parentElement.rowIndex - 1; //获取索引值 这里需要打断点,设置debugger调试才知道索引号
var gridIdx = btn.parentElement.parentElement.rowIndex;
var reDecisionValue = document.getElementById("grdLevelDeterminationResult_reNewDecisionValue_" + gridRowIdx);
if (!IsUnitFormat(reDecisionValue.value) || reDecisionValue.value < 0) {
alert(Resource("BeginWith") + gridIdx + Resource("Row") + Resource("factoryservicedetail_correct_newdecisionvalue"));
reDecisionValue.focus();
reDecisionValue.value = "";
return false;
}
}
}

<asp:Panel ID="pnlLevelDeterminationDetail" runat="server">
<fieldset>
<legend><strong><span id="LevelDetermination">等级判定</span></strong></legend>
<table id="table2" border="0" cellpadding="3" cellspacing="3" width="100%">
<tr valign="middle" style="height: 30px;">
<td style="text-align: right; width: 300px;">
<table width="100%">
<tr>
<td width="20px;">
 
</td>
<td width="200px;">
 
</td>
<td width="200px;" align="center">
<asp:Button ID="btnLevelDeter" runat="server" Text="判定等级" CssClass="button5" onclick="btnLevelDeter_Click" />
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<tittle:CUSTOMDATAGRID id="grdLevelDeterminationResult" runat="server"
DataKeyField="LevelID"
AutoGenerateColumns="False" Sort="False" CellPadding="0" FreezeColumns="0" FreezeHeader="False" GridHeight="240px"
FreezeRows="0" PageSize="10" AllowSorting="false" Width="770px" GridWidth="770px" onitemdatabound="grdLevelDeterminationResult_ItemDataBound">
<PagerStyle HorizontalAlign="Center" Mode="NumericPages"></PagerStyle>
<Columns>
<asp:TemplateColumn>
<HeaderStyle Wrap="False" HorizontalAlign="Center" Width="200px"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Center"></ItemStyle>
<HeaderTemplate>
<%= fetchResource.Resources["maintenancemng_factoryservicedetail_grid_newnames"]%>
</HeaderTemplate>
<ItemTemplate>
<input type="text" class="noemptyInput" style="width:95%; text-align:center;" disabled ="disabled" id ="reNewNames" runat="server" value='<%# Eval("NewNames")%>'/>
</ItemTemplate>
<FooterStyle Wrap="False"></FooterStyle>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle Wrap="False" HorizontalAlign="Center" Width="200px"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Center"></ItemStyle>
<HeaderTemplate>
<%= fetchResource.Resources["maintenancemng_factoryservicedetail_grid_newdecisionvalue"]%>
</HeaderTemplate>
<ItemTemplate>
<input type="text" class="noemptyInput" style="width:95%; text-align:center;" id ="reNewDecisionValue" runat="server" value='<%# Eval("ParameterValue1")%>' onchange='checkDecisionValue(this);'/>
<asp:DropDownList ID="ddlNewDecisionValue" runat="server" style="width:120px;" CssClass="drp">
</asp:DropDownList>
</ItemTemplate>
<FooterStyle Wrap="False"></FooterStyle>
</asp:TemplateColumn>
<asp:TemplateColumn>
<HeaderStyle CssClass="hidden"></HeaderStyle>
<ItemStyle CssClass="hidden" />
<ItemTemplate>
<input type="text" id ="reCheckType" runat="server" value='<%# Eval("CheckType")%>' />
</ItemTemplate>
<FooterStyle CssClass="hidden"></FooterStyle>
</asp:TemplateColumn>
</Columns>
</tittle:CUSTOMDATAGRID>
</td>
</tr>
<tr>
<td>
<!--分页-->
<uc1:GridPage ID="gridLevelDeterminationPage" runat="server" />
</td>
</tr>
</table>
</fieldset>
</asp:Panel>

#region grdLevelDeterminationResult_ItemDataBound
//根据判定参数中的
//check类型 判断
//1.如果check类型 为等于check,则等级判定中的判定值为
//等级判定参数的 参数1
//2.如果check类型 为区间check,则等级判定中的判定值为
//等级判定参数的 参数1 如果存在多个,判定值为参数1。
protected void grdLevelDeterminationResult_ItemDataBound(object sender, DataGridItemEventArgs e)
{

e.Item.Cells[4].Visible = true;//列标题设为可见
e.Item.Cells[5].Visible = false;列标题设为不可见

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) //重要必须添加,如果隐藏列标题的话,不需要添加这个
{

string status = Convert.ToString(DataBinder.Eval(e.Item.DataItem, "Status"));
string checktype = (e.Item.Cells[2].FindControl("reCheckType") as HtmlInputText).Value;
HtmlInputText reNewDecisionValue = (HtmlInputText)(e.Item.Cells[1].FindControl("reNewDecisionValue"));
DropDownList ddlNewDecisionValue = (DropDownList)(e.Item.Cells[1].FindControl("ddlNewDecisionValue"));
string reNewNames = (e.Item.Cells[0].FindControl("reNewNames") as HtmlInputText).Value;

// 取得等级判定信息
DataTable dt = logic.getLevelDeterInfoList(MasterID, reNewNames);
if (checktype == Constants.C_LevelDeterminationParameter_Interval_CheckValue)//check类型为区间check
{
reNewDecisionValue.Visible = true;
ddlNewDecisionValue.Visible = false;
}
if (checktype == Constants.C_LevelDeterminationParameter_Equal_CheckValue)//check类型为等于check
{
reNewDecisionValue.Visible = false;
ddlNewDecisionValue.Visible = true;
if (dt != null && dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
ListItem listitem = new ListItem();
listitem.Value = dr["ParameterValue1"].ToString();
ddlNewDecisionValue.Items.Add(listitem);
}
}
}
}
}
#endregion

//传多个参数

<asp:TemplateColumn HeaderText="服务单编号">
<HeaderStyle Wrap="False" HorizontalAlign="Center" Width="115px"></HeaderStyle>
<ItemStyle Wrap="False" HorizontalAlign="Center"></ItemStyle>
<HeaderTemplate>
<%= fetchResource.Resources["services_noAuditServicesList_grid_ServicesNo"]%>
</HeaderTemplate>
<ItemTemplate>
<asp:HyperLink id="HyperLink1" Target="_self" runat="server" NavigateUrl='<%#String.Format("servicesDetail.aspx?MasterID={0}&Status={1}",DataBinder.Eval
(Container.DataItem,"ID"),DataBinder.Eval(Container.DataItem,"Status")) %>' Text="<%# Bind('ServicesNo') %>" >
</asp:HyperLink>
</ItemTemplate>
<FooterStyle Wrap="False"></FooterStyle>
</asp:TemplateColumn>

HtmlInputCheckBox htmlControl;

if (e.Item.ItemType == ListItemType.Header)
{
htmlControl = (HtmlInputCheckBox)e.Item.Cells[0].FindControl("chkall");
}

cbSelected.Disabled = true;//不可见
cbSelected.Attributes.Add("isCanSelect", "false");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐