ASP.NET Gridview自定义命令字段切换到编辑模式,并且可以在rowdatabound中捕获一些差异

时间:2014-03-20 17:01:30

标签: c# asp.net gridview rowdatabound

关于Stackoverflow的第一个问题

ASP.NET C#Gridview

我的问题是这个

如何在命令字段模板中使用自定义“编辑”按钮,该按钮仍会将行切换为编辑模式,但会在其中一个字段中显示不同的内容。

我的命令列有一个模板字段。 我使用rowdatabound事件作为逻辑。

 <asp:templatefield itemstyle-width="300px">
    <itemtemplate>
        <asp:Literal ID="label2" runat="server" Text='<%# System.Net.WebUtility.HtmlDecode(Eval("translation").ToString()) %>'></asp:Literal>
    </itemtemplate>
    <edititemtemplate>
        <cc1:myeditor ID="teHtml" startupInSourceOrwysiwyg="wysiwyg" type="lite" EnableViewState="false" runat="server" Text='<%# Bind("translation")%>' />
    </edititemtemplate>
</asp:templatefield>
    <asp:templatefield headertext="Command">
    <itemtemplate>
        <asp:LinkButton CommandName="Edit" Text="Edit" ID="btnEdit" runat="server"></asp:LinkButton>
        <asp:LinkButton CommandName="EditHtml" Text="EditHtml" ID="btnEditHtml" runat="server" ></asp:LinkButton>
    </itemtemplate>
    <edititemtemplate>
        <asp:LinkButton CommandName="Update" Text="Update" ID="btnUpdate" runat="server"></asp:LinkButton>
        <asp:LinkButton CommandName="Cancel" Text="Cancel" ID="btnCancel" runat="server"></asp:LinkButton>
    </edititemtemplate>
</asp:templatefield>

Code Behind - Event

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow && (e.Row.RowState & DataControlRowState.Edit) == DataControlRowState.Edit)
        {
            CkEditor editorInstance = (CkEditor)e.Row.FindControl("teHtml");

            string theTranslationText = editorInstance.Text;
            bool isHtmlModeSelected;

            isHtmlModeSelected = hfHtml.Value == "true" ? true : false;

            if (!(isHtmlModeSelected) || (someHtmlFoundInTranslation(theTranslationText)))
            {
                editorInstance.startupInSourceOrwysiwyg = "source";
                editorInstance.removeplugins = "toolbar";
            }
        }
    }

由于

0 个答案:

没有答案