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


    前台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; 300px;">
    <table width="100%">
    <tr>
    <td width="20px;">
    &nbsp;
    </td>
    <td width="200px;">
    &nbsp;
    </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="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="95%; text-align:center;" id ="reNewDecisionValue" runat="server" value='<%# Eval("ParameterValue1")%>' onchange='checkDecisionValue(this);'/>
    <asp:DropDownList ID="ddlNewDecisionValue" runat="server" style="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");

  • 相关阅读:
    HDU 3081 Marriage Match II
    HDU 4292 Food
    HDU 4322 Candy
    HDU 4183 Pahom on Water
    POJ 1966 Cable TV Network
    HDU 3605 Escape
    HDU 3338 Kakuro Extension
    HDU 3572 Task Schedule
    HDU 3998 Sequence
    Burning Midnight Oil
  • 原文地址:https://www.cnblogs.com/allenhua/p/2956806.html
Copyright © 2020-2023  润新知