3

コードをGoogleChartAPIに統合しようとしています。コードビハインドからグーグルチャートのタイトルと軸の列名を手動で設定したい。以下のコードを試しましたが、機能しません。助言がありますか?

ASPXファイル

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
        google.load("visualization", "1", { "packages": ["corechart"] });
        function drawProgrammingChart() {
            var data = new google.visualization.DataTable(operationdetails, 0.5);
            var chart = new google.visualization.LineChart(document.getElementById("divprog"));
            **var xAxis = document.getElementById("txtXAxisName");**
            **console.log(xAxis);**
            var yAxis = document.getElementById("txtYAxisName");
            chart.draw(data, {
                title: "Visualization Satisfaction", hAxis: { title: "Programming method" }, vAxis: { title: "Units" }
            });
        }
        google.setOnLoadCallback(drawProgrammingChart);
    </script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <div id="divprog" style="width: 750px; height: 350px;">
        </div>
    <asp:HiddenField ID="txtXAxisName" runat="server" />
    <asp:HiddenField ID="txtYAxisName" runat="server" />
</asp:Content>

コードビハインドでは、非表示フィールドの値を手動で設定したいと思います。

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                DataTable dt = generateDataTable();
                **txtXAxisName.Value = "Days";**
                txtYAxisName.Value = "Duration";
                LoadChart(dt, "operationdetails");    
            }

        }
private void LoadChart(DataTable table, string jsName)
        {
            Page.ClientScript.RegisterStartupScript(
                this.GetType(),
                jsName, string.Format("var {0} = {1};", jsName, new Bortosky.Google.Visualization.GoogleDataTable(table).GetJson()), true);
        }

要素txtAxisNameを取得すると、nullになります。

4

4 に答える 4

0

次のことを試すことができます。

var yAxis = document.getElementById('<%# txtYAxisName.ClientID %>');
于 2012-11-18T17:20:37.910 に答える
-1

Cal279 が示したように、レンダリングされたページのソース コードを表示し、以下を参照してください。

<input type="hidden" name="ctl00$MainContent$txtXAxisName" id="MainContent_txtXAxisName" value="Days" />

次に、以下を試してみましたが、うまくいきました。Cal279に感謝します:)

var xAxis = document.getElementById("MainContent_txtXAxisName");
于 2012-11-18T18:37:11.670 に答える